diff --git a/.github/workflows/manual-develoment.yml b/.github/workflows/manual-develoment.yml
deleted file mode 100644
index 37d8b85..0000000
--- a/.github/workflows/manual-develoment.yml
+++ /dev/null
@@ -1,119 +0,0 @@
-name: Manual AKS Deployment
-
-on:
- workflow_dispatch:
- inputs:
- environment:
- description: 'Environment to deploy to'
- required: true
- default: 'preprod'
- type: choice
- options:
- - preprod
- - prod
- - feature/*
- image_tag:
- description: 'Docker image tag to deploy'
- required: true
- type: string
-
-
-env:
- REGISTRY: ghcr.io
- IMAGE_NAME: ${{ github.repository }}/am-document-processor
- HELM_CHART_PATH: ./helm/am-document-processor
-
-jobs:
- deploy:
- name: Deploy to AKS
- runs-on: ubuntu-latest
- permissions:
- contents: read
- id-token: write
-
- steps:
- # Checkout repository
- # Checkout repository at the specified ref
- - name: Checkout repository
- uses: actions/checkout@v4
-
- # Set environment-specific variables
- - name: Set environment variables
- id: set-vars
- run: |
- # Set environment-specific variables
- if [[ "${{ github.event.inputs.environment }}" == "prod" ]]; then
- echo "RESOURCE_GROUP=am-investing" >> $GITHUB_ENV
- echo "CLUSTER_NAME=am-np-west" >> $GITHUB_ENV
- echo "NAMESPACE=dev" >> $GITHUB_ENV
- echo "Deploying to PRODUCTION environment"
- elif [[ "${{ github.event.inputs.environment }}" == "feature" ]]; then
- echo "RESOURCE_GROUP=am-investing" >> $GITHUB_ENV
- echo "CLUSTER_NAME=am-np-west" >> $GITHUB_ENV
- echo "NAMESPACE=dev" >> $GITHUB_ENV
- echo "Deploying to FEATURE environment"
- else
- echo "RESOURCE_GROUP=am-investing" >> $GITHUB_ENV
- echo "CLUSTER_NAME=am-np-west" >> $GITHUB_ENV
- echo "NAMESPACE=dev" >> $GITHUB_ENV
- echo "Deploying to PRE-PRODUCTION environment"
- fi
-
- # Set image tag from input
- echo "IMAGE_TAG=${{ github.event.inputs.image_tag }}" >> $GITHUB_ENV
-
- # Login to Azure
- - name: Login to Azure
- uses: azure/login@v1
- with:
- creds: ${{ secrets.AZURE_CREDENTIALS }}
-
- # Set AKS context
- - name: Set AKS context
- uses: azure/aks-set-context@v3
- with:
- resource-group: ${{ env.RESOURCE_GROUP }}
- cluster-name: ${{ env.CLUSTER_NAME }}
-
- # Setup Helm
- - name: Setup Helm
- uses: azure/setup-helm@v3
- with:
- version: 'v3.12.3'
-
- # Deploy to AKS using Helm
- - name: Deploy to AKS
- run: |
- # Create namespace if it doesn't exist
- kubectl create namespace ${{ env.NAMESPACE }} --dry-run=client -o yaml | kubectl apply -f -
-
- echo "Deploying image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}"
- echo "Environment: ${{ github.event.inputs.environment }}"
- echo "Resource Group: ${{ env.RESOURCE_GROUP }}"
- echo "Cluster: ${{ env.CLUSTER_NAME }}"
- echo "Namespace: ${{ env.NAMESPACE }}"
-
- # Set values file based on environment
- if [[ "${{ github.event.inputs.environment }}" == "feature" ]]; then
- # For feature branches, use preprod values as base
- VALUES_FILE="${{ env.HELM_CHART_PATH }}/values/preprod.yaml"
- else
- # For standard environments, use the corresponding values file
- VALUES_FILE="${{ env.HELM_CHART_PATH }}/values/${{ github.event.inputs.environment }}.yaml"
- fi
-
- # Deploy using Helm with the appropriate values file
- helm upgrade --install am-document-processor ${{ env.HELM_CHART_PATH }} \
- --namespace ${{ env.NAMESPACE }} \
- -f $VALUES_FILE \
- --set image.repository=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} \
- --set image.tag=${{ env.IMAGE_TAG }} \
- --set deployment.version="${{ env.IMAGE_TAG }}" \
- --wait --timeout 5m
-
- # Verify deployment
- - name: Verify deployment
- run: |
- kubectl rollout status deployment/am-document-processor -n ${{ env.NAMESPACE }}
- echo "Deployment to ${{ github.event.inputs.environment }} completed successfully!"
- echo "Deployment to ${{ github.event.inputs.environment }} completed successfully!"
diff --git a/helm/am-document-processor/templates/deployment.yaml b/helm/am-document-processor/templates/deployment.yaml
index e9a64ce..6b36c63 100644
--- a/helm/am-document-processor/templates/deployment.yaml
+++ b/helm/am-document-processor/templates/deployment.yaml
@@ -29,8 +29,20 @@ spec:
vault.hashicorp.com/agent-inject-secret-kafka: "kv/preprod/kafka"
vault.hashicorp.com/agent-inject-template-kafka: |
{{`{{- with secret "kv/preprod/kafka" -}}
- export KAFKA_BOOTSTRAP_SERVERS="{{ .Data.data.bootstrapServers }}"
- export KAFKA_CONSUMER_GROUP_ID="{{ .Data.data.consumerGroupId }}"
+ KAFKA_BOOTSTRAP_SERVERS="{{ .Data.data.kafkabootstrapserver }}"
+ KAFKA_SECURITY_PROTOCOL="{{ .Data.data.securityprotocol }}"
+ KAFKA_SASL_MECHANISM="{{ .Data.data.sslmechanism }}"
+ KAFKA_SASL_JAAS_CONFIG="{{ .Data.data.sasljaasconfig }}"
+ KAFKA_ZOOKEEPER_CONNECT="{{ .Data.data.zookeeperconnect }}"
+ KAFKA_CONSUMER_GROUP_ID="{{ .Data.data.consumerGroupId }}"
+ KAFKA_CONSUMER_AUTO_OFFSET_RESET="{{ .Data.data.autooffsetreset }}"
+ {{- end -}}`}}
+
+ vault.hashicorp.com/agent-inject-secret-mongodb: "kv/preprod/database/mongo"
+ vault.hashicorp.com/agent-inject-template-mongodb: |
+ {{`{{- with secret "kv/preprod/database/mongo" -}}
+ MONGODB_DATABASE="{{ .Data.data.portfoliodatabase }}"
+ MONGODB_URI= {{ .Data.data.uri }}/{{ .Data.data.portfoliodatabase }}?authSource={{ .Data.data.authsource }}
{{- end -}}`}}
{{- with .Values.podAnnotations }}
{{- toYaml . | nindent 8 }}
diff --git a/pom.xml b/pom.xml
index 3868c01..9ea3fb0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,9 +32,9 @@
3.4.1
- 1.2.8-SNAPSHOT
- 1.2.8-SNAPSHOT
- 1.2.8-SNAPSHOT
+ 1.2.9-SNAPSHOT
+ 1.2.9-SNAPSHOT
+ 1.2.9-SNAPSHOT
12.8.1.jre11
@@ -120,11 +120,11 @@
org.springframework.boot
spring-boot-starter-data-mongodb
-
+
org.postgresql
postgresql
diff --git a/src/main/java/org/am/mypotrfolio/DocumentProcessingApplication.java b/src/main/java/org/am/mypotrfolio/DocumentProcessingApplication.java
index 24c6b2d..a3a5805 100644
--- a/src/main/java/org/am/mypotrfolio/DocumentProcessingApplication.java
+++ b/src/main/java/org/am/mypotrfolio/DocumentProcessingApplication.java
@@ -5,6 +5,7 @@
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScans;
+import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
import lombok.extern.slf4j.Slf4j;
@@ -16,6 +17,7 @@
@ComponentScan("org.am.mypotrfolio.service.mapper"),
@ComponentScan("com.am.common.amcommondata.mapper")
})
+@EnableMongoRepositories(basePackages = "com.am.common.amcommondata.repository")
public class DocumentProcessingApplication {
public static void main(String[] args) {
diff --git a/src/main/java/org/am/mypotrfolio/config/MongoConfig.java b/src/main/java/org/am/mypotrfolio/config/MongoConfig.java
deleted file mode 100644
index 0f06cf3..0000000
--- a/src/main/java/org/am/mypotrfolio/config/MongoConfig.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.am.mypotrfolio.config;
-
-import org.am.mypotrfolio.config.properties.PersistenceProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
-import org.springframework.lang.NonNull;
-
-import com.mongodb.client.MongoClient;
-import com.mongodb.client.MongoClients;
-
-import lombok.RequiredArgsConstructor;
-
-@Configuration
-@EnableMongoRepositories(basePackages = "com.am.common.amcommondata.repository.*")
-@RequiredArgsConstructor
-public class MongoConfig extends AbstractMongoClientConfiguration {
-
- private final PersistenceProperties persistenceProperties;
-
- @Override
- @NonNull
- protected String getDatabaseName() {
- return persistenceProperties.getMongodb().getDatabase();
- }
-
- @Override
- @Bean
- @NonNull
- public MongoClient mongoClient() {
- return MongoClients.create(persistenceProperties.getMongodb().getUri());
- }
-
- @Bean
- public MongoTemplate mongoTemplate() {
- return new MongoTemplate(mongoClient(), getDatabaseName());
- }
-}
\ No newline at end of file
diff --git a/src/main/java/org/am/mypotrfolio/config/properties/PersistenceProperties.java b/src/main/java/org/am/mypotrfolio/config/properties/PersistenceProperties.java
deleted file mode 100644
index 04dd96d..0000000
--- a/src/main/java/org/am/mypotrfolio/config/properties/PersistenceProperties.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.am.mypotrfolio.config.properties;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-
-import lombok.Data;
-
-@Data
-@Configuration
-@ConfigurationProperties(prefix = "app.persistence")
-public class PersistenceProperties {
- private MongoProperties mongodb;
-
- @Data
- public static class MongoProperties {
- private String uri;
- private String database;
- }
-}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2f035bb..d431599 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,3 +1,9 @@
+# Kafka Configuration
+KAFKA_BOOTSTRAP_SERVERS: kafka.dev.svc.cluster.local:9092
+KAFKA_SECURITY_PROTOCOL: SASL_PLAINTEXT
+KAFKA_SASL_MECHANISM: PLAIN
+KAFKA_SASL_JAAS_CONFIG: org.apache.kafka.common.security.plain.PlainLoginModule required username="kafkaUser" password="kafkaPassword123!";
+
server:
port: 8080
spring:
@@ -24,26 +30,24 @@ spring:
hibernate:
format_sql: true
kafka:
- bootstrap-servers: kafka.dev.svc.cluster.local:9092
+ bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS}
properties:
- security.protocol: SASL_PLAINTEXT
- sasl.mechanism: PLAIN
- sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="kafkaUser" password="kafkaPassword123!";
+ security.protocol: ${KAFKA_SECURITY_PROTOCOL}
+ sasl.mechanism: ${KAFKA_SASL_MECHANISM}
+ sasl.jaas.config: ${KAFKA_SASL_JAAS_CONFIG}
consumer:
group-id: document-processor
auto-offset-reset: earliest
data:
mongodb:
+ uri: mongodb://ssd2658:ssd2658@mongodb.dev.svc.cluster.local:27017/portfolio?authSource=admin
+ database: portfolio
auto-index-creation: true
app:
kafka:
portfolio-topic: am-portfolio
trade-topic: am-trade
- persistence:
- mongodb:
- uri: mongodb://admin:password@mongodb.dev.svc.cluster.local:27017/nse_security?authSource=admin
- database: nse_security
logging:
level:
@@ -53,4 +57,35 @@ logging:
org.hibernate: INFO
org.hibernate.SQL: INFO
'[org.hibernate.type.descriptor.sql.BasicBinder]': TRACE
- '[org.springframework.data.mongodb.core.MongoTemplate]': DEBUG
\ No newline at end of file
+ '[org.springframework.data.mongodb.core.MongoTemplate]': DEBUG
+
+
+
+# Management/Actuator Configuration
+management:
+ endpoints:
+ web:
+ exposure:
+ include: health,info,metrics,prometheus
+ endpoint:
+ health:
+ probes:
+ enabled: true
+ show-details: always
+ validate-group-membership: false
+ group:
+ readiness:
+ include: diskSpace,mongodb,redis,kafka
+ liveness:
+ include: diskSpace,mongodb,redis,kafka
+ health:
+ livenessstate:
+ enabled: true
+ readinessstate:
+ enabled: true
+ mongo:
+ enabled: true
+ redis:
+ enabled: true
+ kafka:
+ enabled: true
\ No newline at end of file