diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 51fbfcc..d426dfb 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,5 +1,3 @@ { - "recommendations": [ - "johnpapa.vscode-peacock" - ] -} \ No newline at end of file + "recommendations": ["johnpapa.vscode-peacock"] +} diff --git a/.vscode/launch.json b/.vscode/launch.json index cb09d93..9b0ae6f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -11,9 +11,9 @@ "mode": "debug", "program": "${workspaceRoot}/cmd/main.go", "env": { - "APP_PORT":"9995", - "KAFKA_PORT":"9092", - "KAFKA_HOST":"37.143.12.169", + "APP_PORT": "9995", + "KAFKA_PORT": "9092", + "KAFKA_HOST": "37.143.12.169", "SENTRY_DSN": "https://3f4b31dbbd9a4a6b8a71f9881d962f25@o4504654569799680.ingest.sentry.io/4504654572683264" }, "args": [] diff --git a/.vscode/settings.json b/.vscode/settings.json index bf19f1d..1de8427 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,25 +1,25 @@ { - "workbench.colorCustomizations": { - "activityBar.activeBackground": "#0bba5d", - "activityBar.activeBorder": "#eee1fd", - "activityBar.background": "#0bba5d", - "activityBarBadge.background": "#eee1fd", - "activityBarBadge.foreground": "#15202b", - "statusBar.background": "#088a45", - "statusBarItem.hoverBackground": "#0bba5d", - "titleBar.activeBackground": "#088a45", - "titleBar.inactiveBackground": "#088a4599", - "activityBar.foreground": "#e7e7e7", - "activityBar.inactiveForeground": "#e7e7e799", - "statusBar.foreground": "#e7e7e7", - "titleBar.activeForeground": "#e7e7e7", - "titleBar.inactiveForeground": "#e7e7e799", - "statusBarItem.remoteBackground": "#088a45", - "statusBarItem.remoteForeground": "#e7e7e7", - "sash.hoverBorder": "#0bba5d", - "commandCenter.border": "#e7e7e799" - }, - "peacock.color": "#088a45", - "todo-tree.tree.disableCompactFolders": false, - "todo-tree.tree.showBadges": true -} \ No newline at end of file + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#0bba5d", + "activityBar.activeBorder": "#eee1fd", + "activityBar.background": "#0bba5d", + "activityBarBadge.background": "#eee1fd", + "activityBarBadge.foreground": "#15202b", + "statusBar.background": "#088a45", + "statusBarItem.hoverBackground": "#0bba5d", + "titleBar.activeBackground": "#088a45", + "titleBar.inactiveBackground": "#088a4599", + "activityBar.foreground": "#e7e7e7", + "activityBar.inactiveForeground": "#e7e7e799", + "statusBar.foreground": "#e7e7e7", + "titleBar.activeForeground": "#e7e7e7", + "titleBar.inactiveForeground": "#e7e7e799", + "statusBarItem.remoteBackground": "#088a45", + "statusBarItem.remoteForeground": "#e7e7e7", + "sash.hoverBorder": "#0bba5d", + "commandCenter.border": "#e7e7e799" + }, + "peacock.color": "#088a45", + "todo-tree.tree.disableCompactFolders": false, + "todo-tree.tree.showBadges": true +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json index cd64240..779ff68 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,55 +1,70 @@ { - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "label": "build linux", - "type": "shell", - "group": { - "kind": "build", - "isDefault": true - }, - "presentation": { - "echo": true, - "panel": "new" - }, - "options": { - "cwd": "${workspaceRoot}", - "env": { - "APP": "pakitara", - "GOOS": "linux", - "GOARCH": "amd64", - "GOBIN": "${env:GOPATH}/bin" - }, - "args": [ - "ldflags '-s -w'" - ] - }, - "command": "go build -o $GOBIN/$APP-$GOOS-$GOARCH -ldflags \"-s -w\" $APP.go", - "problemMatcher": [] + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "type": "shell", + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "echo": true, + "panel": "new" + }, + "options": { + "cwd": "${workspaceRoot}", + "env": { + "APP": "authDBService", + // "GOOS": "${env:GOOS}", + // "GOARCH": "${env:GOARCH}", + "GOOS": "linux", + "GOARCH": "amd64", + "GOBIN": "${env:GOPATH}/bin" }, - { - "label": "build windows", - "type": "shell", - "group": "build", - "presentation": { - "echo": true, - "panel": "new" - }, - "options": { - "cwd": "${workspaceRoot}", - "env": { - "APP": "pakitara", - "GOOS": "windows", - "GOARCH": "amd64", - "GOBIN": "${env:GOPATH}/bin" - }, - "args": [ - "ldflags '-s -w'" - ] - }, - "command": "go build -o $GOBIN\\$APP-$GOOS-$GOARCH.exe -ldflags \"-s -w\" $APP.go" + "args": ["ldflags '-s -w'"] + }, + "command": "go build -o $GOBIN/$APP-$GOOS-$GOARCH -ldflags \"-s -w\" ./cmd/main.go", + "problemMatcher": [] + }, + { + "label": "docker-build", + "type": "shell", + "group": { + "kind": "build" + }, + "presentation": { + "echo": true, + "panel": "new" + }, + "options": { + "cwd": "${workspaceRoot}", + "env": { + "TAG": "slaventius/test3k_auth_db:latest" + }, + "args": ["--no-cache", "--tag $TAG"] + }, + "command": "sudo docker build --no-cache --tag $TAG ./build/", + "problemMatcher": [] + }, + { + "label": "docker-push", + "type": "shell", + "group": { + "kind": "build" + }, + "presentation": { + "echo": true, + "panel": "new" + }, + "options": { + "cwd": "${workspaceRoot}", + "env": { + "TAG": "slaventius/test3k_auth_db:latest" } - ] -} \ No newline at end of file + }, + "command": "sudo docker push $TAG", + "problemMatcher": [] + } + ] +} diff --git a/README.md b/README.md index ffc1171..ccc1b87 100644 --- a/README.md +++ b/README.md @@ -1,5 +1 @@ -# authDB - -* http://git.slaventius.ru/test3k/authDB.git -* docker build --no-cache --tag slaventius/test3k_auth_db:latest ./deploy/ -* docker push slaventius/test3k_auth_db:latest \ No newline at end of file +# authDB \ No newline at end of file diff --git a/build/Makefile b/build/Makefile new file mode 100644 index 0000000..5102dee --- /dev/null +++ b/build/Makefile @@ -0,0 +1,25 @@ +.DEFAULT_GOAL := build + +GOOS=$(shell go env GOOS) +GOARCH=$(shell go env GOARCH) +GOBIN=$(shell go env GOPATH)/bin +APP=authDBService +APP_BINARY=${GOBIN}/${APP}-${GOOS}-${GOARCH} +APP_TAG=slaventius/test3k_auth_db:latest + +clean: + @echo "cleaning ${APP_BINARY}" + @go clean + @rm -f ${APP_BINARY} + +build: clean + @echo "building ${APP_BINARY}" + @go build -o ${APP_BINARY} -ldflags "-s -w" ../cmd/main.go + +docker-build: + @echo "building docker-image ${APP_TAG}" + @sudo docker build --no-cache --tag ${APP_TAG} . + +docker-push: docker-build + @echo "pushing docker-image ${APP_TAG}" + @sudo docker push ${APP_TAG} \ No newline at end of file diff --git a/deploy/auth-db-config.yaml b/deploy/.pre/auth-db-config.yaml similarity index 84% rename from deploy/auth-db-config.yaml rename to deploy/.pre/auth-db-config.yaml index ea9354f..d9d167b 100644 --- a/deploy/auth-db-config.yaml +++ b/deploy/.pre/auth-db-config.yaml @@ -4,5 +4,5 @@ metadata: name: auth-db-config data: KAFKA_HOST: "37.143.12.169" - KAFKA_PORT: "9092" + KAFKA_PORT: "19092" APP_PORT: "9995" diff --git a/deploy/auth-db-deployment.yaml b/deploy/.pre/auth-db-deployment.yaml similarity index 53% rename from deploy/auth-db-deployment.yaml rename to deploy/.pre/auth-db-deployment.yaml index d8c5c02..a9b2ac4 100644 --- a/deploy/auth-db-deployment.yaml +++ b/deploy/.pre/auth-db-deployment.yaml @@ -21,5 +21,21 @@ spec: ports: - containerPort: 9995 envFrom: + - secretRef: + name: auth-db-secret - configMapRef: name: auth-db-config +# livenessProbe: +# grpc: +# port: 9995 +# periodSeconds: 1 +# initialDelaySeconds: 2 +# failureThreshold: 3 +# successThreshold: 1 +# readinessProbe: +# grpc: +# port: 9995 +# periodSeconds: 1 +# initialDelaySeconds: 4 +# failureThreshold: 3 +# successThreshold: 1 diff --git a/deploy/.pre/auth-db-secret.yaml b/deploy/.pre/auth-db-secret.yaml new file mode 100644 index 0000000..54f3ec9 --- /dev/null +++ b/deploy/.pre/auth-db-secret.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: auth-db-secret +type: Opaque +data: + SENTRY_DSN: aHR0cHM6Ly8zZjRiMzFkYmJkOWE0YTZiOGE3MWY5ODgxZDk2MmYyNUBvNDUwNDY1NDU2OTc5OTY4MC5pbmdlc3Quc2VudHJ5LmlvLzQ1MDQ2NTQ1NzI2ODMyNjQ= diff --git a/deploy/auth-db-service.yaml b/deploy/.pre/auth-db-service.yaml similarity index 100% rename from deploy/auth-db-service.yaml rename to deploy/.pre/auth-db-service.yaml diff --git a/deploy/helm/Chart.yaml b/deploy/helm/Chart.yaml new file mode 100644 index 0000000..93571e1 --- /dev/null +++ b/deploy/helm/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: auth-db-HelmChart +description: Helm Chart for auth-db +type: application +version: 0.1.0 +appVersion: "1.0.0" diff --git a/deploy/helm/templates/config.yaml b/deploy/helm/templates/config.yaml new file mode 100644 index 0000000..cea488d --- /dev/null +++ b/deploy/helm/templates/config.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-config +data: + KAFKA_HOST: "37.143.12.169" + KAFKA_PORT: "19092" + APP_PORT: "9995" diff --git a/deploy/helm/templates/deployment.yaml b/deploy/helm/templates/deployment.yaml new file mode 100644 index 0000000..50db5fc --- /dev/null +++ b/deploy/helm/templates/deployment.yaml @@ -0,0 +1,41 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-application + labels: + app: {{ .Release.Name }}-application +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Release.Name }}-application + template: + metadata: + labels: + app: {{ .Release.Name }}-application + spec: + containers: + - name: {{ .Release.Name }}-application + image: {{ .Values.container.image }} + imagePullPolicy: Always + ports: + - containerPort: {{ .Values.container.port }} + envFrom: + - secretRef: + name: {{ .Release.Name }}-secret + - configMapRef: + name: {{ .Release.Name }}-config +# livenessProbe: +# grpc: +# port: {{ .Values.container.port }} +# periodSeconds: 1 +# initialDelaySeconds: 2 +# failureThreshold: 3 +# successThreshold: 1 +# readinessProbe: +# grpc: +# port: {{ .Values.container.port }} +# periodSeconds: 1 +# initialDelaySeconds: 4 +# failureThreshold: 3 +# successThreshold: 1 diff --git a/deploy/helm/templates/secret.yaml b/deploy/helm/templates/secret.yaml new file mode 100644 index 0000000..85c3dac --- /dev/null +++ b/deploy/helm/templates/secret.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-secret +type: Opaque +data: + SENTRY_DSN: aHR0cHM6Ly8zZjRiMzFkYmJkOWE0YTZiOGE3MWY5ODgxZDk2MmYyNUBvNDUwNDY1NDU2OTc5OTY4MC5pbmdlc3Quc2VudHJ5LmlvLzQ1MDQ2NTQ1NzI2ODMyNjQ= diff --git a/deploy/helm/templates/service.yaml b/deploy/helm/templates/service.yaml new file mode 100644 index 0000000..9385617 --- /dev/null +++ b/deploy/helm/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }}-service + labels: + app: {{ .Release.Name }}-application +spec: + type: ClusterIP + selector: + app: {{ .Release.Name }}-application + ports: + - protocol: TCP + port: {{ .Values.container.port }} + targetPort: {{ .Values.container.port }} diff --git a/deploy/helm/values.yaml b/deploy/helm/values.yaml new file mode 100644 index 0000000..82d2a2a --- /dev/null +++ b/deploy/helm/values.yaml @@ -0,0 +1,3 @@ +container: + image: slaventius/test3k_auth_db:latest + port: 9995 diff --git a/deploy/redpanda/docker-compose.yaml b/deploy/redpanda/docker-compose.yaml index 82f90ae..b2e52b1 100644 --- a/deploy/redpanda/docker-compose.yaml +++ b/deploy/redpanda/docker-compose.yaml @@ -20,7 +20,8 @@ services: # # address the broker advertises to clients that connect to the Kafka API. - --advertise-kafka-addr - - internal://redpanda-0:9092,external://localhost:19092 + # # - internal://redpanda-0:9092,external://localhost:19092 + - internal://redpanda-0:9092,outside://37.143.12.169:19092 - --pandaproxy-addr - internal://0.0.0.0:8082,external://0.0.0.0:18082 # address the broker advertises to clients that connect to PandaProxy. diff --git a/scripts/start.sh b/scripts/start.sh index 5beb329..f019d85 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1,9 +1,13 @@ #!/bin/sh export APP_PORT=9995 -# export KAFKA_PORT=9092 export KAFKA_PORT=19092 -export KAFKA_HOST=127.0.0.1 -# export KAFKA_HOST=37.143.12.169 +export KAFKA_HOST=37.143.12.169 +export SENTRY_DSN="https://3f4b31dbbd9a4a6b8a71f9881d962f25@o4504654569799680.ingest.sentry.io/4504654572683264" -./authDBService +export APP=authDBService +export GOOS=$(eval go env GOOS) +export GOARCH=$(eval go env GOARCH) +export GOBIN=$(eval go env GOPATH)/bin + +${GOBIN}/${APP}-${GOOS}-${GOARCH} \ No newline at end of file