diff --git a/applications/squareone/Chart.yaml b/applications/squareone/Chart.yaml index b6eca47a8c..5da469e3e2 100644 --- a/applications/squareone/Chart.yaml +++ b/applications/squareone/Chart.yaml @@ -10,4 +10,4 @@ maintainers: url: https://github.com/jonathansick # The default version tag of the squareone docker image -appVersion: "0.15.0" +appVersion: "0.16.0" diff --git a/applications/squareone/README.md b/applications/squareone/README.md index c6d0746d99..ec8d49c1e1 100644 --- a/applications/squareone/README.md +++ b/applications/squareone/README.md @@ -22,10 +22,16 @@ Squareone is the homepage UI for the Rubin Science Platform. | config.docsBaseUrl | string | `"https://rsp.lsst.io"` | Base URL for user documentation (excludes trailing slash) | | config.docsPageMdx | string | See `values.yaml` | MDX content for the `/docs` page | | config.emailVerifiedPageMdx | string | See `values.yaml` | MDX content for the `/enrollment/thanks-for-verifying` page | +| config.enableSentry | bool | See `values.yaml` | Enable Sentry | | config.pendingApprovalPageMdx | string | See `values.yaml` | MDX content for the `/enrollment/pending-approval` page | | config.pendingVerificationPageMdx | string | See `values.yaml` | MDX content for the `/enrollment/pending-confirmation` | | config.plausibleDomain | string | `nil` | Plausible tracking domain. For example, `data.lsst.cloud`. @default null disables Plausible tracking | | config.semaphoreUrl | string | `nil` | URL to the Semaphore (user notifications) API service. @default null disables the Semaphore integration | +| config.sentryDebug | bool | See `values.yaml` | Sentry debug mode | +| config.sentryDsn | string | See `values.yaml` | Sentry DSN | +| config.sentryReplaysOnErrorSampleRate | int | See `values.yaml` | Sentry error replays sample rate | +| config.sentryReplaysSessionSampleRate | int | See `values.yaml` | Sentry replays sample rate | +| config.sentryTracesSampleRate | int | See `values.yaml` | Sentry traces sample rate | | config.siteDescription | string | `"Access Rubin Observatory Legacy Survey of Space and Time data.\n"` | Site description, used in meta tags | | config.siteName | string | `"Rubin Science Platform"` | Name of the site, used in the title and meta tags. | | config.supportPageMdx | string | See `values.yaml` | MDX content for the `/support` page | @@ -33,6 +39,7 @@ Squareone is the homepage UI for the Rubin Science Platform. | config.verifyEmailPageMdx | string | See `values.yaml` | MDX content for the `/enrollment/thanks-for-signing-up` page | | fullnameOverride | string | `""` | Overrides the full name for resources (includes the release name) | | global.baseUrl | string | Set by Argo CD Application | Base URL for the environment | +| global.environmentName | string | Set by Argo CD Application | Name of the Phalanx environment | | global.host | string | Set by Argo CD Application | Host name for ingress | | global.vaultSecretsPathPrefix | string | Set by Argo CD Application | Base path for Vault secrets | | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy (tip: use Always for development) | diff --git a/applications/squareone/secrets.yaml b/applications/squareone/secrets.yaml new file mode 100644 index 0000000000..d189def65a --- /dev/null +++ b/applications/squareone/secrets.yaml @@ -0,0 +1,5 @@ +sentry-dsn: + description: >- + The Sentry DSN for the the squareone Sentry project. + This is a URL that includes an authentication token that tells the Sentry SDK where to send events. + It can be found here: https://rubin-observatory.sentry.io/settings/projects/squareone/keys/ diff --git a/applications/squareone/templates/configmap.yaml b/applications/squareone/templates/configmap.yaml index c2362a58b4..586874459d 100644 --- a/applications/squareone/templates/configmap.yaml +++ b/applications/squareone/templates/configmap.yaml @@ -8,6 +8,7 @@ data: squareone.config.yaml: | siteName: {{ .Values.config.siteName | quote }} baseUrl: {{ .Values.global.baseUrl | quote }} + environmentName: {{ .Values.global.environmentName | quote }} siteDescription: {{ .Values.config.siteDescription | quote }} docsBaseUrl: {{ .Values.config.docsBaseUrl | quote }} {{- if .Values.config.semaphoreUrl }} @@ -29,3 +30,10 @@ data: emailVerifiedPageMdx: {{ .Values.config.emailVerifiedPageMdx | quote }} pendingApprovalPageMdx: {{ .Values.config.pendingApprovalPageMdx | quote }} pendingVerificationPageMdx: {{ .Values.config.pendingVerificationPageMdx | quote }} + {{- if .Values.config.sentryDsn }} + sentryDsn: {{ .Values.config.sentryDsn | quote }} + {{- end}} + sentryTracesSampleRate: {{ .Values.config.sentryTracesSampleRate }} + sentryReplaysSessionSampleRate: {{ .Values.config.sentryReplaysSessionSampleRate }} + sentryReplaysOnErrorSampleRate: {{ .Values.config.sentryReplaysOnErrorSampleRate }} + sentryDebug: {{ .Values.config.sentryDebug }} diff --git a/applications/squareone/templates/deployment.yaml b/applications/squareone/templates/deployment.yaml index 0df5c20a04..0a90405a6a 100644 --- a/applications/squareone/templates/deployment.yaml +++ b/applications/squareone/templates/deployment.yaml @@ -48,6 +48,13 @@ spec: env: - name: "SQUAREONE_CONFIG_PATH" value: "/etc/squareone/squareone.config.yaml" + {{- if .Values.config.enableSentry }} + - name: "SENTRY_DSN" + valueFrom: + secretKeyRef: + name: {{ template "squareone.fullname" . }}-secret + key: "sentry-dsn" + {{- end }} volumeMounts: - name: "config" mountPath: "/etc/squareone" diff --git a/applications/squareone/templates/vault-secrets.yaml b/applications/squareone/templates/vault-secrets.yaml index 8755456d29..0295e46e43 100644 --- a/applications/squareone/templates/vault-secrets.yaml +++ b/applications/squareone/templates/vault-secrets.yaml @@ -7,3 +7,13 @@ metadata: spec: path: "{{- .Values.global.vaultSecretsPathPrefix }}/pull-secret" type: kubernetes.io/dockerconfigjson +--- +apiVersion: ricoberger.de/v1alpha1 +kind: VaultSecret +metadata: + name: {{ template "squareone.fullname" . }}-secret + labels: + {{- include "squareone.labels" . | nindent 4 }} +spec: + path: "{{- .Values.global.vaultSecretsPathPrefix }}/squareone" + type: "Opaque" diff --git a/applications/squareone/values-idfdev.yaml b/applications/squareone/values-idfdev.yaml index bf5c55a7dc..ca5271fc8c 100644 --- a/applications/squareone/values-idfdev.yaml +++ b/applications/squareone/values-idfdev.yaml @@ -1,6 +1,5 @@ image: pullPolicy: Always - # tag: tickets-DM-34723 ingress: timesSquareScope: "exec:admin" @@ -25,3 +24,7 @@ config: - [data-int.lsst.cloud](https://data-int.lsst.cloud) — for Rubin RSP developers Don't forget to check the documentation. + + enableSentry: true + sentryTracesSampleRate: 1.0 + sentryReplaysOnErrorSampleRate: 1.0 diff --git a/applications/squareone/values-idfint.yaml b/applications/squareone/values-idfint.yaml index 48e16d8615..1fe8a6f54d 100644 --- a/applications/squareone/values-idfint.yaml +++ b/applications/squareone/values-idfint.yaml @@ -171,3 +171,7 @@ config: [#dm-rsp-team channel](https://lsstc.slack.com/archives/C8EEUGDSA). Don't forget to check the documentation. + + enableSentry: true + sentryTracesSampleRate: 1.0 + sentryReplaysOnErrorSampleRate: 1.0 diff --git a/applications/squareone/values-idfprod.yaml b/applications/squareone/values-idfprod.yaml index 8d2d9353f9..dc16f736ef 100644 --- a/applications/squareone/values-idfprod.yaml +++ b/applications/squareone/values-idfprod.yaml @@ -9,3 +9,6 @@ config: semaphoreUrl: "https://data.lsst.cloud/semaphore" coManageRegistryUrl: "https://id.lsst.cloud" plausibleDomain: "data.lsst.cloud" + enableSentry: true + sentryTracesSampleRate: 1.0 + sentryReplaysOnErrorSampleRate: 1.0 diff --git a/applications/squareone/values-roundtable-dev.yaml b/applications/squareone/values-roundtable-dev.yaml index 51d60bb1bd..4fc38199a8 100644 --- a/applications/squareone/values-roundtable-dev.yaml +++ b/applications/squareone/values-roundtable-dev.yaml @@ -1,2 +1,5 @@ config: siteName: "Roundtable (dev)" + enableSentry: true + sentryTracesSampleRate: 1.0 + sentryReplaysOnErrorSampleRate: 1.0 diff --git a/applications/squareone/values-roundtable-prod.yaml b/applications/squareone/values-roundtable-prod.yaml index a5a115b710..ab8965e0d9 100644 --- a/applications/squareone/values-roundtable-prod.yaml +++ b/applications/squareone/values-roundtable-prod.yaml @@ -1,2 +1,5 @@ config: siteName: "Roundtable" + enableSentry: true + sentryTracesSampleRate: 1.0 + sentryReplaysOnErrorSampleRate: 1.0 diff --git a/applications/squareone/values-usdfdev.yaml b/applications/squareone/values-usdfdev.yaml index d490acfb3e..91ee6fde73 100644 --- a/applications/squareone/values-usdfdev.yaml +++ b/applications/squareone/values-usdfdev.yaml @@ -4,5 +4,8 @@ config: semaphoreUrl: "https://usdf-rsp-dev.slac.stanford.edu/semaphore" timesSquareUrl: "https://usdf-rsp-dev.slac.stanford.edu/times-square/api" docsBaseUrl: "https://rsp.lsst.io/v/usdfdev" + enableSentry: true + sentryTracesSampleRate: 1.0 + sentryReplaysOnErrorSampleRate: 1.0 ingress: timesSquareScope: "exec:notebook" diff --git a/applications/squareone/values-usdfint.yaml b/applications/squareone/values-usdfint.yaml index 2116e1a1e0..47adef95c7 100644 --- a/applications/squareone/values-usdfint.yaml +++ b/applications/squareone/values-usdfint.yaml @@ -4,3 +4,6 @@ config: semaphoreUrl: "https://usdf-rsp-int.slac.stanford.edu/semaphore" docsBaseUrl: "https://rsp.lsst.io/v/usdfint" timesSquareUrl: "https://usdf-rsp-int.slac.stanford.edu/times-square/api" + enableSentry: true + sentryTracesSampleRate: 1.0 + sentryReplaysOnErrorSampleRate: 1.0 diff --git a/applications/squareone/values-usdfprod.yaml b/applications/squareone/values-usdfprod.yaml index 01c0faf52d..6ddaa7c19e 100644 --- a/applications/squareone/values-usdfprod.yaml +++ b/applications/squareone/values-usdfprod.yaml @@ -4,5 +4,8 @@ config: semaphoreUrl: "https://usdf-rsp.slac.stanford.edu/semaphore" timesSquareUrl: "https://usdf-rsp.slac.stanford.edu/times-square/api" docsBaseUrl: "https://rsp.lsst.io/v/usdfprod" + enableSentry: true + sentryTracesSampleRate: 1.0 + sentryReplaysOnErrorSampleRate: 1.0 ingress: timesSquareScope: "exec:notebook" diff --git a/applications/squareone/values.yaml b/applications/squareone/values.yaml index 84c8cb3470..538a2bb7fc 100644 --- a/applications/squareone/values.yaml +++ b/applications/squareone/values.yaml @@ -332,6 +332,30 @@ config: contact us to have the confirmation email resent. + # -- Enable Sentry + # @default -- See `values.yaml` + enableSentry: false + + # -- Sentry DSN + # @default -- See `values.yaml` + sentryDsn: null + + # -- Sentry traces sample rate + # @default -- See `values.yaml` + sentryTracesSampleRate: 0 + + # -- Sentry replays sample rate + # @default -- See `values.yaml` + sentryReplaysSessionSampleRate: 0 + + # -- Sentry error replays sample rate + # @default -- See `values.yaml` + sentryReplaysOnErrorSampleRate: 0 + + # -- Sentry debug mode + # @default -- See `values.yaml` + sentryDebug: false + # Global parameters are set by parameters injected by the Argo CD Application # and should not be set in the individual environment values files. global: @@ -346,3 +370,7 @@ global: # -- Base path for Vault secrets # @default -- Set by Argo CD Application vaultSecretsPathPrefix: "" + + # -- Name of the Phalanx environment + # @default -- Set by Argo CD Application + environmentName: "" diff --git a/environments/templates/applications/rsp/squareone.yaml b/environments/templates/applications/rsp/squareone.yaml index 9977e677b9..ac082123bd 100644 --- a/environments/templates/applications/rsp/squareone.yaml +++ b/environments/templates/applications/rsp/squareone.yaml @@ -28,6 +28,8 @@ spec: value: "https://{{ .Values.fqdn }}" - name: "global.vaultSecretsPathPrefix" value: {{ .Values.vaultPathPrefix | quote }} + - name: "global.environmentName" + value: {{ .Values.name | quote }} valueFiles: - "values.yaml" - "values-{{ .Values.name }}.yaml"