diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index 544b5bd9..78f82a8f 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -1,4 +1,4 @@ -# Copyright (c) Magistrala +# Copyright (c) Abstract Machines # SPDX-License-Identifier: Apache-2.0 name: Lint and Test Charts @@ -29,7 +29,7 @@ jobs: - name: Update Helm dependencies run: | - helm dependency update charts/magistrala + helm dependency update charts/supermq # Python is required because `ct lint` runs Yamale (https://github.com/23andMe/Yamale) and # yamllint (https://github.com/adrienverge/yamllint) which require Python @@ -61,4 +61,4 @@ jobs: - name: Run chart-testing (install) if: steps.list-changed.outputs.changed == 'true' run: | - ct install --target-branch ${{ github.event.repository.default_branch }} --chart-dirs charts/magistrala/charts + ct install --target-branch ${{ github.event.repository.default_branch }} --chart-dirs charts/supermq/charts diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 95e740e0..f0539ed0 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,4 +1,4 @@ -# Copyright (c) Magistrala +# Copyright (c) Abstract Machines # SPDX-License-Identifier: Apache-2.0 name: Release Charts @@ -41,7 +41,7 @@ jobs: - name: Update Helm dependencies run: | - helm dependency update charts/magistrala + helm dependency update charts/supermq - name: Run chart-releaser uses: helm/chart-releaser-action@v1.6.0 diff --git a/charts/supermq/templates/domains-deplyment.yaml b/charts/supermq/templates/domains-deplyment.yaml new file mode 100644 index 00000000..aa8e3440 --- /dev/null +++ b/charts/supermq/templates/domains-deplyment.yaml @@ -0,0 +1,70 @@ +# Copyright (c) Abstract Machines +# SPDX-License-Identifier: Apache-2.0 + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-domains +spec: + selector: + matchLabels: + app: {{ .Release.Name }} + component: domains + template: + metadata: + annotations: + prometheus.io/path: /metrics + prometheus.io/port: "{{ .Values.domains.http.port }}" + prometheus.io/scrape: "true" + labels: + app: {{ .Release.Name }} + component: domains + spec: + {{- with (default .Values.defaults.image.pullSecrets .Values.domains.image.pullSecrets) }} + imagePullSecrets: + {{- toYaml . | nindent 12 }} + {{- end }} + dnsPolicy: ClusterFirst + restartPolicy: Always + containers: + - name: {{ .Release.Name }}-domains + image: "{{ default (printf "%s/domains" .Values.defaults.image.rootRepository) .Values.domains.image.repository }}:{{ default .Values.defaults.image.tag .Values.domains.image.tag }}" + imagePullPolicy: {{ default .Values.defaults.image.pullPolicy .Values.domains.image.pullPolicy }} + env: + - name: SMQ_DOMAINS_LOG_LEVEL + value: {{ default .Values.defaults.logLevel .Values.domains.logLevel | quote }} + - name: SMQ_DOMAINS_GRPC_HOST + value: {{ .Values.domains.grpc.host | quote }} + - name: SMQ_DOMAINS_GRPC_PORT + value: "{{ .Values.domains.grpc.port | quote }}" + - name: SMQ_DOMAINS_HTTP_HOST + value: {{ .Values.domains.http.host | quote }} + - name: SMQ_DOMAINS_HTTP_PORT + value: "{{ .Values.domains.http.port | quote }}" + - name: SMQ_DOMAINS_DB_HOST + {{- if .Values.postgresqldomains.enabled }} + value: "{{ .Release.Name }}-postgresqldomains" + {{- else }} + value: {{ .Values.postgresqldomains.host | quote }} + {{- end }} + - name: SMQ_DOMAINS_DB_PORT + value: "{{ .Values.domains.db.port | quote }}" + - name: SMQ_DOMAINS_DB_USER + value: {{ .Values.domains.db.user | quote }} + - name: SMQ_DOMAINS_DB_PASS + value: {{ .Values.domains.db.password | quote }} + - name: SMQ_DOMAINS_DB_NAME + value: {{ .Values.domains.db.database | quote }} + - name: SMQ_ES_URL + value: {{ .Values.defaults.eventStreamURL | quote }} + - name: SMQ_JAEGER_URL + value: "http://{{ .Values.jaeger.fullnameOverride }}-collector:{{ .Values.jaeger.collector.service.otlp.http.port }}/v1/traces" + - name: SMQ_JAEGER_TRACE_RATIO + value: {{ default .Values.defaults.jaegerTraceRatio .Values.users.jaegerTraceRatio | quote }} + - name: SMQ_SEND_TELEMETRY + value: {{ default .Values.defaults.sendTelemetry .Values.users.sendTelemetry | quote }} + ports: + - containerPort: {{ .Values.domains.grpc.port }} + name: grpc + - containerPort: {{ .Values.domains.http.port }} + name: http diff --git a/charts/supermq/templates/domains-service.yaml b/charts/supermq/templates/domains-service.yaml new file mode 100644 index 00000000..a123cb8e --- /dev/null +++ b/charts/supermq/templates/domains-service.yaml @@ -0,0 +1,18 @@ +# Copyright (c) Abstract Machines +# SPDX-License-Identifier: Apache-2.0 + +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }}-domains +spec: + selector: + app: {{ .Release.Name }} + component: domains + ports: + - protocol: TCP + port: {{ .Values.domains.http.port }} + name: {{ .Release.Name }}-domains-http + - protocol: TCP + port: {{ .Values.domains.grpc.port }} + name: {{ .Release.Name }}-domains-grpc diff --git a/charts/supermq/templates/users-service.yaml b/charts/supermq/templates/users-service.yaml index 041385e7..ef1c1794 100644 --- a/charts/supermq/templates/users-service.yaml +++ b/charts/supermq/templates/users-service.yaml @@ -11,5 +11,5 @@ spec: component: users ports: - protocol: TCP - port: {{ .Values.users.httpPort }} + port: {{ .Values.users.http.port }} name: {{ .Release.Name }}-users-http diff --git a/charts/supermq/values.yaml b/charts/supermq/values.yaml index c965f521..cb22c636 100644 --- a/charts/supermq/values.yaml +++ b/charts/supermq/values.yaml @@ -19,6 +19,46 @@ defaults: sendTelemetry: true eventStreamURL: "supermq-nats:4222" +domains: + image: + {} + # pullSecrets: {} + # repository: "supermq/domains" + # tag: "latest" + # pullPolicy: "IfNotPresent" + # logLevel: "info" + # jaegerTraceRatio: 1.0 + # sendTelemetry: true + grpc: + host: "0.0.0.0" + port: 7003 + http: + host: ""0.0.0.0"" + port: 9003 + cache: + url: "redis://domains-redis:6379/0" + keyDuration: "10m" + +postgresqldomains: + ## If you want to use an external database, set this to false and change host & port + enabled: true + name: postgresql-domains + host: postgresql-domains + port: &postgresqlUsersPort 5432 + database: &postgresqlUsersDatabase domains + username: &postgresqlUsersUsername supermq + password: &postgresqlUsersPassword supermq + global: + postgresql: + auth: + postgresPassword: *postgresqlUsersPassword + username: *postgresqlUsersUsername + password: *postgresqlUsersPassword + database: *postgresqlUsersDatabase + service: + ports: + postgresql: *postgresqlUsersPort + ingress: enabled: true annotations: {}