From 9472173f76f3abb815dafda44a0f2e96185c360d Mon Sep 17 00:00:00 2001 From: Jennings Zhang Date: Tue, 26 Nov 2024 19:20:26 -0500 Subject: [PATCH] chris-ui version 1.0.0-alpha.1 --- charts/chris-ui/.helmignore | 23 ++++ charts/chris-ui/Chart.lock | 6 + charts/chris-ui/Chart.yaml | 29 ++++ charts/chris-ui/templates/chrisui.yml | 18 +++ charts/chris-ui/values.yaml | 187 ++++++++++++++++++++++++++ 5 files changed, 263 insertions(+) create mode 100644 charts/chris-ui/.helmignore create mode 100644 charts/chris-ui/Chart.lock create mode 100644 charts/chris-ui/Chart.yaml create mode 100644 charts/chris-ui/templates/chrisui.yml create mode 100644 charts/chris-ui/values.yaml diff --git a/charts/chris-ui/.helmignore b/charts/chris-ui/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/chris-ui/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/chris-ui/Chart.lock b/charts/chris-ui/Chart.lock new file mode 100644 index 0000000..3e57a2b --- /dev/null +++ b/charts/chris-ui/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: util + repository: https://fnndsc.github.io/charts + version: 0.2.0 +digest: sha256:74c5d5141a2eafdc4d911783a96ab2d4b54dbca2b2d90f380f9c44496e302d73 +generated: "2024-11-26T19:17:37.946228294-05:00" diff --git a/charts/chris-ui/Chart.yaml b/charts/chris-ui/Chart.yaml new file mode 100644 index 0000000..eea3188 --- /dev/null +++ b/charts/chris-ui/Chart.yaml @@ -0,0 +1,29 @@ +apiVersion: v2 +name: chris-ui +description: ChRIS user interface +home: https://chrisproject.org +sources: +- https://github.com/FNNDSC/charts +- https://github.com/FNNDSC/ChRIS_ui +keywords: +- medicine +- science +- bioinformatics +- neuroscience +- scientific workflow system +icon: ./logo_chris.png + +type: application +version: 1.0.0-alpha.1 + +appVersion: "36f2dcb" +maintainers: +- name: The FNNDSC Dev Team + email: dev@babyMRI.org + url: https://fnndsc.org + +dependencies: +- name: util + version: "0.2.0" + repository: "https://fnndsc.github.io/charts" + diff --git a/charts/chris-ui/templates/chrisui.yml b/charts/chris-ui/templates/chrisui.yml new file mode 100644 index 0000000..5c621b3 --- /dev/null +++ b/charts/chris-ui/templates/chrisui.yml @@ -0,0 +1,18 @@ +{{- $env := (dict + "SERVER_PORT" .Values.service.port + "CHRIS_UI_URL" (.Values.cubeUrl | required "cubeUrl is required") + "PFDCM_URL" (.Values.pfdcmUrl | required "pfdcmUrl is required") +) -}} +{{- $optionalEnvNames := (dict + "ohifUrl" "OHIF_URL" + "ackeeServer" "ACKEE_SERVER" + "ackeeDomainId" "ACKEE_DOMAIN_ID" +) -}} +{{- range $k, $v := $optionalEnvNames -}} + {{- $value := (get $.Values $k) -}} + {{- with (get $.Values $k) -}} + {{- $_ := set $env $v . -}} + {{- end -}} +{{- end -}} +{{- $moreValues := (dict "Values" (dict "extraEnv" $env)) -}} +{{- mustMerge $moreValues . | include "util.knativeOrDeployment" -}} diff --git a/charts/chris-ui/values.yaml b/charts/chris-ui/values.yaml new file mode 100644 index 0000000..6a62f69 --- /dev/null +++ b/charts/chris-ui/values.yaml @@ -0,0 +1,187 @@ +# Default values for chris-ui. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +nameOverride: "" +fullnameOverride: "" + +# ChRIS_ui configuration +##################### + +# -- (required) URL of ChRIS backend. +cubeUrl: +# -- (required) URL of PFDCM. +pfdcmUrl: +# -- (optional) URL of OHIF. +ohifUrl: +# -- (optional) URL of Ackee web analytics. +ackeeServer: +# -- (optional) Domain ID for Ackee web analytics. +ackeeDomainId: + +# -- Extra environment variables. +# -- See https://static-web-server.net/configuration/environment-variables/ +extraEnv: + SERVER_HEALTH: true + +# Resource configuration +##################### + +# -- This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/ +image: + registry: ghcr.io + repository: fnndsc/chris_ui + # -- This sets the pull policy for images. + pullPolicy: IfNotPresent + # -- Overrides the image tag whose default is the chart appVersion. + tag: "" + +# -- This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ +imagePullSecrets: [] + +# -- This section builds out the service account more information can be found here: https://kubernetes.io/docs/concepts/security/service-accounts/ +serviceAccount: + # Specifies whether a service account should be created + create: false + # Automatically mount a ServiceAccount's API credentials? + automount: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +# -- This is for setting Kubernetes Annotations to a Pod. +# -- For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ +podAnnotations: {} + +# -- This is for setting Kubernetes Labels to a Pod. +# -- For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ +podLabels: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + +resources: {} + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +# -- This is to setup the liveness and readiness probes more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ +# -- Recommended to use the /health endpoint. See https://static-web-server.net/configuration/environment-variables/#server_health +# -- Note: it is recommended to set `extraEnv.SERVER_HEALTH=true` +livenessProbe: + httpGet: + path: /health + port: http +readinessProbe: + httpGet: + path: /health + port: http +startupProbe: + httpGet: + path: /health + port: http + failureThreshold: 60 + periodSeconds: 1 + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +# -- Labels for the Deployment/Service resource. +labels: {} + +# -- Annotations for the Deployment/Service resource. +annotations: {} + +# Kind configuration +##################### + +# -- kind must be one of: +# -- +# -- - "Deployment": use (standard) Kubernetes Deployment and Service APIs +# -- - "Service": use the KNative Serving API +kind: Deployment + + +# KNative Serving configuration +##################### + +# -- KNative Serving revision annotations. +# -- Only used with `kind=Service` +revisionAnnotations: {} + # autoscaling.knative.dev/target: "100" + # autoscaling.knative.dev/min-scale: "1" + # autoscaling.knative.dev/max-scale: "3" + # autoscaling.knative.dev/scale-to-zero-pod-retention-period: "1m5s" + + +# Deployment configuration +##################### + +# -- This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ +# -- Ignored if `autoscaling.enabled=true` +# -- Only used with `kind=Deployment` +replicaCount: 1 + +# -- This is for setting up a service more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/ +# -- Only used with `kind=Deployment` +service: + # This sets the service type more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types + type: ClusterIP + # This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports + port: 8080 + # nodePort: + +# -- This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/ +# -- Only used with `kind=Deployment` +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +# -- OpenShift route. +# -- Only used with `kind=Deployment` +route: + enabled: false + host: chart-example.local + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect + destinationCACertificate: '' + +# -- This section is for setting up autoscaling more information can be found here: https://kubernetes.io/docs/concepts/workloads/autoscaling/ +# -- Only used with `kind=Deployment` +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 +