diff --git a/apps/calsys/values-summit.yaml b/apps/calsys/values-summit.yaml index 747c2338..1a9ebdda 100644 --- a/apps/calsys/values-summit.yaml +++ b/apps/calsys/values-summit.yaml @@ -9,6 +9,7 @@ cscs: - gcheaderservice1 - tunablelaser - cbp + - ledprojector renameMap: electrometer101: comcam-electrometer-101 electrometer102: cbpcal-electrometer-102 diff --git a/apps/kafka-producers/values-summit.yaml b/apps/kafka-producers/values-summit.yaml index 297f0e9d..6a8e9a43 100644 --- a/apps/kafka-producers/values-summit.yaml +++ b/apps/kafka-producers/values-summit.yaml @@ -85,6 +85,7 @@ producers: CBP Electrometer FiberSpectrograph + LEDProjector LinearStage TunableLaser mtaircompressor: diff --git a/apps/ledprojector/Chart.yaml b/apps/ledprojector/Chart.yaml new file mode 100644 index 00000000..6c359c4c --- /dev/null +++ b/apps/ledprojector/Chart.yaml @@ -0,0 +1,4 @@ +name: ledprojector +apiVersion: 2 +version: 0.13.0 +description: A Helm chart for deploying the LEDProjector CSC. diff --git a/apps/ledprojector/README.md b/apps/ledprojector/README.md new file mode 100644 index 00000000..a65b70b7 --- /dev/null +++ b/apps/ledprojector/README.md @@ -0,0 +1,36 @@ +# ledprojector + +A Helm chart for deploying the LEDProjector CSC. + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| affinity | object | `{}` | This specifies the scheduling constraints of the pod | +| annotations | object | `{}` | This allows the specification of pod annotations | +| butlerSecret | object | `{}` | This key allows for specification of Butler secret information. **NOTE**: You must fill out a _secretPermFixer_ entry in addition. If this section is used, it must contain the following attributes: _containerPath_ (The directory location for the Butler secret), _dbUser_ (The username for the Butler backend database) | +| configfile | object | `{}` | This key allows specification of a YAML configuration file If this section is used, it must contain the following attributes defined: _path_ (The container path for the configuration file), _filename_ (The configuration file name), _content_ (The YAML content for the configuration file) | +| ddsRouteFixer | object | `{}` | This section sets the optional use of an init container for multus networking. If this section is used, the following attributes must to be specified: _repository_ (The Docker registry name of the init container image), _tag_ (The tag of the init container image), _pullPolicy_ (The policy to apply when pulling an image for init container deployment) | +| entrypoint | string | `nil` | This key allows specification of a script to override the entrypoint | +| env | object | `{}` | This section holds a set of key, value pairs for environmental variables (ENV_VAR: value) | +| envSecrets | list | `[]` | This section holds specifications for secret injection. If this section is used, each object listed must have the following attributes defined: _name_ (The label for the secret), _secretName_ (The name of the vault store reference. Uses the _namespace_ attribute to construct the full name), _secretKey_ (The key in the vault store containing the necessary secret) | +| image.nexus3 | string | `"pull-secret"` | The tag name for the Nexus3 Docker repository secrets if private images need to be pulled | +| image.pullPolicy | string | `"IfNotPresent"` | The policy to apply when pulling an image for deployment | +| image.repository | string | `"lsstts/test"` | The Docker registry name of the container image to use for the CSC | +| image.tag | string | `"develop"` | The tag of the container image to use for the CSC | +| namespace | string | `nil` | This is the namespace in which the CSC will be placed | +| nfsMountpoint | list | `[]` | This section holds the information necessary to create a NFS mount for the container. If this section is used, each object listed can have the following attributes defined: _name_ (A label identifier for the mountpoint), _path_ (The path inside the container to mount), _readOnly_ (This sets if the NFS mount is read only or read/write), _server_ (The hostname of the NFS server), _serverPath_ (The path exported by the NFS server) | +| nodeSelector | object | `{}` | This allows the specification of using specific nodes to run the pod | +| osplVersion | string | `"V6.9.0"` | This is the version of the OpenSplice library to run. It is used to set the location of the OSPL configuration file | +| pvcMountpoint | list | `[]` | This section holds the information necessary to create a volume mount for the container. If this section is used, each object listed can have the following attributes defined: _name_ (A label identifier for the mountpoint), _path_ (The path inside the container to mount), _accessMode_ (This sets the required access mode for the volume mount), _claimSize_ (The requested physical disk space size for the volume mount), _storageClass_ (The Kubernetes provided storage class), _ids.uid_ (OPTIONAL: An alternative UID for mounting), _ids.gid_ (OPTIONAL: An alternative GID for mounting) | +| resources | object | `{}` | This allows the specification of resources (CPU, memory) requires to run the container | +| secretPermFixer | object | `{}` | This section sets the optional use of an init container for fixing permissions on secret files. If this section is used, each object listed can have the necessary attributes specified: _name_ (The label used for the init container) _containerPath_ (The path in the container where the secret files will be stored) _secretName_ (OPTIONAL: The secret name if different from _name_) _specialInstructions_ (OPTIONAL: This allows for optional instructions to be used when fixing permissions) | +| securityContext | object | `{}` | This key allows for the specification of a pod security context for volumes. If this section is used, it must contain the following attributes: _user_ (The user id for the volumes) _group_ (The group id for the volumes) _fsGroup_ (OPTIONAL: A special supplemental group that applies to all containers in a pod) | +| service.port | int | `nil` | The port number to use for the Service. | +| service.type | string | `nil` | The Service type for the application. This is either ClusterIP (internal access) or LoadBalancer (external access) | +| service.use | bool | `false` | This sets the use of a Service API for the application | +| shmemDir | string | `nil` | This is the path to the Kubernetes local store where the shared memory database will be written | +| tolerations | list | `[]` | This specifies the tolerations of the pod for any system taints | +| useExternalConfig | bool | `true` | This sets whether to rely on the ConfigMap for OSPL configuration or the internal OSPL configuration | +| useHostIpc | bool | `nil` | This sets the use of the host inter-process communication system. Defaults to true if not specified | +| useHostPid | bool | `nil` | This sets the use of the host process ID system. Defaults to true if not specified | diff --git a/apps/ledprojector/templates b/apps/ledprojector/templates new file mode 120000 index 00000000..75eb0c53 --- /dev/null +++ b/apps/ledprojector/templates @@ -0,0 +1 @@ +../../charts/csc \ No newline at end of file diff --git a/apps/ledprojector/values-summit.yaml b/apps/ledprojector/values-summit.yaml new file mode 100644 index 00000000..e1d49ac9 --- /dev/null +++ b/apps/ledprojector/values-summit.yaml @@ -0,0 +1,13 @@ +namespace: calsys +image: + repository: ts-dockerhub.lsst.org/ledprojector + tag: c0039 + pullPolicy: Always +env: + LSST_DDS_PARTITION_PREFIX: summit + LSST_SITE: summit + OSPL_INFOFILE: /tmp/ospl-info-ledprojector.log + OSPL_ERRORFILE: /tmp/ospl-error-ledprojector.log + RUN_ARG: +shmemDir: /run/ospl +osplVersion: V6.10.4 diff --git a/apps/ledprojector/values.yaml b/apps/ledprojector/values.yaml new file mode 120000 index 00000000..0fd1c1f7 --- /dev/null +++ b/apps/ledprojector/values.yaml @@ -0,0 +1 @@ +../../values/csc/values.yaml \ No newline at end of file diff --git a/apps/love-producer/values-summit.yaml b/apps/love-producer/values-summit.yaml index 38fc9a3f..afde2892 100644 --- a/apps/love-producer/values-summit.yaml +++ b/apps/love-producer/values-summit.yaml @@ -150,6 +150,9 @@ producers: lasertracker1: name_index: LaserTracker:1 WEBSOCKET_HOST: love-nginx-service/love/manager/producers/ws/subscription + ledprojector: + name_index: LEDProjector:0 + WEBSOCKET_HOST: love-nginx-service/love/manager/producers/ws/subscription love: name_index: LOVE:0 WEBSOCKET_HOST: love-nginx-service/love/manager/producers/ws/subscription diff --git a/docs/app-maint/add-application.rst b/docs/app-maint/add-application.rst index 72ae0d65..18fad14b 100644 --- a/docs/app-maint/add-application.rst +++ b/docs/app-maint/add-application.rst @@ -24,6 +24,7 @@ The following is the procedure to add a new application to the system. The files should be named ``values-.yaml``. Simulator variants of indexed components should have values files like ``values--sim.yaml``. #. If the application needs to be integrated with a :ref:`collector application `, add the application name to the list in the appropriate environment file in the collector. +#. Add the application reference to the love and kafka producers on the desired site yaml file. If the application is part of a :ref:`collector application `, then once the change with the application is committed and pushed to GitHub, syncing the collector application will create the application. After the application is created, it can then be synced via methods described in :ref:`CSC-Ops-with-ArgoCD-Upgrade-Application`.