diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2b946f8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +#ARG GOLANG_TAG=193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/golang:1.19 + +# To run locally, use +ARG GOLANG_TAG=registry.cmd.navi-tech.in/common/golang:1.19 + +FROM ${GOLANG_TAG} as builder +RUN mkdir -p /build +WORKDIR /build +COPY . /build +RUN /bin/bash -c "make build" + +FROM ${GOLANG_TAG} +RUN mkdir -p /usr/local +WORKDIR /usr/local +RUN mkdir -p houstonTmp +COPY --from=0 /build/houston /usr/local/ +COPY --from=0 /build/config/application.properties /usr/local/config/ +RUN adduser --system --uid 4000 --disabled-password app-user && chown -R 4000:4000 /usr/local && chmod -R g+w /usr/local/ +USER 4000 +CMD /bin/bash -c "./houston" \ No newline at end of file diff --git a/Dockerfile.core b/Dockerfile.core deleted file mode 100644 index 6e36e99..0000000 --- a/Dockerfile.core +++ /dev/null @@ -1,22 +0,0 @@ -ARG GOLANG_TAG=193044292705.dkr.ecr.ap-south-1.amazonaws.com/common/golang:1.19 - -# To run locally, use -#ARG GOLANG_TAG=registry.cmd.navi-tech.in/common/golang:1.19 - -FROM ${GOLANG_TAG} as builder -RUN mkdir -p /build/core -WORKDIR /build/core/ -COPY . /build/core/ -RUN /bin/bash -c "make build-core" - -FROM ${GOLANG_TAG} -RUN mkdir -p /usr/local -RUN apt-get -y update -RUN apt-get install -y ffmpeg -WORKDIR /usr/local -RUN mkdir -p houstonTmp -COPY --from=0 /build/core/houston /usr/local/ -COPY --from=0 /build/core/config/application-houston.properties /usr/local/config/ -RUN adduser --system --uid 4000 --disabled-password app-user && chown -R 4000:4000 /usr/local && chmod -R g+w /usr/local/ -USER 4000 -CMD /bin/bash -c "./houston" \ No newline at end of file diff --git a/Makefile b/Makefile index e69de29..220123a 100644 --- a/Makefile +++ b/Makefile @@ -0,0 +1,11 @@ +.PHONY: build +build: + go mod tidy && CGO_ENABLED=0 go build -ldflags="-s -w" -o houston cmd/main.go + +.PHONY: docker-build +docker-build: + docker build -t houston -f Dockerfile . + +.PHONY: docker-run +docker-run: docker-build + docker run houston diff --git a/cmd/cmd b/cmd/cmd deleted file mode 100755 index afb66dc..0000000 Binary files a/cmd/cmd and /dev/null differ diff --git a/config/application-blazeless.properties b/config/application-blazeless.properties deleted file mode 100644 index d4dbf93..0000000 --- a/config/application-blazeless.properties +++ /dev/null @@ -1,13 +0,0 @@ -BLAZELESS_SLACK_APP_TOKEN=xapp-1-A0444DP8XU5-4136817231606-8e441610b1696fd4f5fa81e9507a3d6f625504ac07588c63543972ff3b147321 -BLAZELESS_SLACK_BOT_TOKEN= -BOOTSTRAP_SERVERS=localhost:9092 -GROUP_ID=blaze-group -AUTO_OFFSET_RESET=newest -ENABLE=true -ACKS=0 -SECURITY_PROTOCOL= -SASL_MECHANISMS= -SASL_USERNAME= -SASL_PASSWORD= -ENVIRONMENT=local -SHOW_INCIDENTS_LIMIT=10 diff --git a/config/application-houston.properties b/config/application-houston.properties deleted file mode 100644 index c98ae09..0000000 --- a/config/application-houston.properties +++ /dev/null @@ -1,13 +0,0 @@ -HOUSTON_SLACK_APP_TOKEN=xapp-1-A0444DP8XU5-4136817231606-8e441610b1696fd4f5fa81e9507a3d6f625504ac07588c63543972ff3b147321 -HOUSTON_SLACK_BOT_TOKEN=j22 -BOOTSTRAP_SERVERS=localhost:9092 -GROUP_ID=blaze-group -AUTO_OFFSET_RESET=newest -ENABLE=true -ACKS=0 -SECURITY_PROTOCOL= -SASL_MECHANISMS= -SASL_USERNAME= -SASL_PASSWORD= -ENVIRONMENT=local -SHOW_INCIDENTS_LIMIT=10 \ No newline at end of file diff --git a/config/application.properties b/config/application.properties new file mode 100644 index 0000000..9e97d01 --- /dev/null +++ b/config/application.properties @@ -0,0 +1,6 @@ +HOUSTON_SLACK_APP_TOKEN=xapp-1-A0444DP8XU5-4136817231606-8e441610b1696fd4f5fa81e9507a3d6f625504ac07588c63543972ff3b147321 +HOUSTON_SLACK_BOT_TOKEN=j22 +ENVIRONMENT=local +SHOW_INCIDENTS_LIMIT=10 +PORT=8080 +METRIC_PORT=9090 \ No newline at end of file diff --git a/config/config.go b/config/config.go index e11fc60..2f62b63 100644 --- a/config/config.go +++ b/config/config.go @@ -1,20 +1,16 @@ package config import ( - "os" - "strings" - "github.com/spf13/viper" "go.uber.org/zap" + "os" ) - func LoadHoustonConfig(logger *zap.Logger) { viper.AutomaticEnv() - viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) - viper.SetConfigName("blazeless-config") + viper.SetConfigName("houston-config") viper.SetConfigType("properties") - viper.SetConfigFile("./config/application-blazeless.properties") + viper.SetConfigFile("./config/application.properties") err := viper.ReadInConfig() if err != nil { diff --git a/pkg/kafka/.DS_Store b/pkg/kafka/.DS_Store deleted file mode 100644 index e59a67a..0000000 Binary files a/pkg/kafka/.DS_Store and /dev/null differ diff --git a/pkg/kafka/config.go b/pkg/kafka/config.go deleted file mode 100644 index 2bfc3c9..0000000 --- a/pkg/kafka/config.go +++ /dev/null @@ -1,80 +0,0 @@ -package kafka - -import ( - "crypto/tls" - "strings" - "time" - - "github.com/Shopify/sarama" - "github.com/spf13/viper" -) - -func SaramaSyncProducer() (sarama.AsyncProducer, error) { - return sarama.NewAsyncProducer(strings.Split(viper.GetString("kafka.brokers"), ","), kafkaProducerConfig()) -} - -func SaramaKafkaConsumer(groupID string) (sarama.ConsumerGroup, error) { - consumerGroup, err := sarama.NewConsumerGroup(strings.Split(viper.GetString("kafka.brokers"), ","), groupID, kafkaConsumerConfig(groupID)) - if err != nil { - return nil, err - } - - return consumerGroup, nil -} - -func kafkaProducerConfig() *sarama.Config { - config := kafkaConfig() - - config.Producer.Retry.Max = 3 - config.Producer.RequiredAcks = sarama.WaitForLocal - config.Producer.Compression = sarama.CompressionSnappy - config.Producer.Return.Successes = true - config.Producer.Flush.Bytes = 100 - config.Producer.Flush.Frequency = 100 - config.Producer.Flush.Messages = 100 - config.Producer.Flush.MaxMessages = 100 - - config.Metadata.RefreshFrequency = 1 * time.Minute - - return config -} - -func kafkaConsumerConfig(groupId string) *sarama.Config { - config := kafkaConfig() - - config.Version = sarama.V3_3_1_0 - config.Consumer.Offsets.Initial = sarama.OffsetNewest - config.Consumer.Return.Errors = true - config.ClientID = groupId - config.Consumer.Group.Rebalance.Strategy = sarama.BalanceStrategyRoundRobin - - return config -} - -func kafkaConfig() *sarama.Config { - config := sarama.NewConfig() - env := viper.GetString("env") - - if env == "local" { - return config - } - - if env == "prod" { - config.Net.SASL.Mechanism = sarama.SASLTypePlaintext - } else { - config.Net.SASL.Mechanism = sarama.SASLTypeSCRAMSHA512 - config.Net.SASL.SCRAMClientGeneratorFunc = func() sarama.SCRAMClient { - return &XDGSCRAMClient{HashGeneratorFcn: SHA512} - } - } - - config.Net.SASL.User = viper.GetString("kafka.username") - config.Net.SASL.Password = viper.GetString("kafka.password") - config.Net.SASL.Enable = viper.GetBool("kafka.sasl.enabled") - config.Net.TLS.Enable = viper.GetBool("kafka.tls.enabled") - config.Net.TLS.Config = &tls.Config{ - InsecureSkipVerify: viper.GetBool("kafka.tls.insecureSkipVerify"), - } - - return config -} diff --git a/pkg/kafka/produce/produce.go b/pkg/kafka/produce/produce.go deleted file mode 100644 index 5be39a0..0000000 --- a/pkg/kafka/produce/produce.go +++ /dev/null @@ -1,63 +0,0 @@ -package kafka - -import ( - "blaze/pkg/kafka" - "os" - - "github.com/Shopify/sarama" - "go.uber.org/zap" -) - -type KProducer struct { - sarama.AsyncProducer - logger *zap.Logger -} - -func NewKProducer(logger *zap.Logger) *KProducer { - producer, err := kafka.SaramaSyncProducer() - if err != nil { - logger.Error("sarama kafka producer failed", zap.Error(err)) - os.Exit(1) - } - - kProducer := &KProducer{ - AsyncProducer: producer, - logger: logger, - } - - kProducer.Errors() - kProducer.Successes() - - return kProducer -} - -// Errors keep the track of failed messages. -func (kp *KProducer) Errors() { - go func() { - for err := range kp.AsyncProducer.Errors() { - keyBytes, errEncode := err.Msg.Key.Encode() - if errEncode != nil { - kp.logger.Error("key encoding failed for failed message", zap.String("topic", err.Msg.Topic)) - } - - // metrics.KafkaEventIngestionEventFailureCounter.WithLabelValues(err.Msg.Topic).Inc() - kp.logger.Error("failed to emit event to kafka", zap.String("topic", err.Msg.Topic), - zap.String("key", string(keyBytes)), zap.Any("value", string(keyBytes)), zap.String("error", err.Error())) - } - }() -} - -// Successes is to check if message successfully delivered to kafka -func (kp *KProducer) Successes() { - go func() { - for msg := range kp.AsyncProducer.Successes() { - keyBytes, errEncode := msg.Key.Encode() - if errEncode != nil { - kp.logger.Error("key encoding failed for failed message", zap.String("topic", msg.Topic)) - } - - // metrics.KafkaEventIngestionEventSuccessCounter.WithLabelValues(msg.Topic).Inc() - kp.logger.Info("successfully ingested event to kafka", zap.String("topic", msg.Topic), zap.String("key", string(keyBytes))) - } - }() -} diff --git a/pkg/slack/houston/command/020003558014 b/pkg/slack/houston/command/020003558014 deleted file mode 100644 index 1e17572..0000000 --- a/pkg/slack/houston/command/020003558014 +++ /dev/null @@ -1,599 +0,0 @@ -020003558014 -020003900893 -020003333489 -027620996 -020003445139 -021702862 -027409590 -020004267232 -025883146 -020000040077 -027259677 -020003732743 -020003341765 -020004269102 -020003447657 -020003300976 -020003524585 -020003454356 -020004506061 -021583078 -020003576779 -022465360 -020003341738 -026592869 -020004408853 -020003680059 -020003521018 -020004464121 -020004295982 -020004699471 -020003492076 -020004421882 -020003620905 -021844073 -020003905104 -020004835161 -021830531 -020003530514 -020003331307 -020003424364 -020004395272 -025911471 -020003830373 -020003509994 -020004066362 -020004205112 -020162216 -020004010831 -026504309 -020003765224 -020003565794 -024415636 -024086936 -020003423080 -020003841894 -021628510 -020003422987 -026117018 -020004575492 -020004259951 -020003718823 -027599428 -020003181757 -028267509 -029988750 -020003502316 -020004649161 -022524458 -022408293 -020004653651 -020003318189 -020004017401 -020003446105 -020003734153 -020003404739 -022535780 -020003020055 -020003305629 -020003641184 -020003309586 -021866406 -025109686 -020663707 -028204765 -020003519985 -020003719493 -020003509334 -020003984191 -020004263641 -020003654445 -020006116642 -020007731381 -020005767123 -020004848105 -020005929313 -020006498112 -020004477507 -020005393927 -020004781476 -020006272862 - - -020005322935 -020005236375 -020005303595 -020005488425 -020004654559 -020006051913 -020005488175 -020004608600 -020005492575 -020005312368 -020005304248 -020005315735 -020007508881 -020004823974 -020006194523 -020005246918 -020006404662 -020007650991 -020005356386 -020005786724 -020005968223 -020005821414 -020006612462 -020007973331 -020008056531 -020007582001 -020004823859 -020006077182 -020008088441 -020007926721 -020003841686 -020005397835 -020006364113 -020004593200 -020005882723 -020005439094 -020008022001 -020006649852 -020007854771 -020005859074 -020005151627 -020005354737 -020007799021 -020004753940 -020005431224 -020005414436 -020005428978 -020006698082 -020005613886 -020005283297 -020007780281 - - - -020007091041 -020006582162 -020008101671 -020006309823 -020008344001 -020008364981 -020005674135 -020005019339 -020006693612 -020005633437 -020004730030 -020005927584 -020005447816 -020005660997 -020006171863 -020005667075 -020005314367 -020006163912 -020004791270 -020008274491 -020007904631 -020004441634 -020004442564 -020003977800 -020005083822 -020003883850 -020003901247 -020003800026 -020005794061 -020005262551 -020004367433 -020004474784 -020005925561 -020006074041 -020004749644 -020004862063 -020004767843 -020004060670 -020004066814 -025221920 -020003707965 -020003605755 -020005994721 -020005172043 -020004949973 -020004225623 -020004185030 -020003851584 -020004266845 -020004048067 - - - -020004523853 -020004529807 -020003750367 -020004016159 -020004291054 -020004687113 -020004518973 -020006395481 -020004622625 -020004051316 -020003562855 -020004031785 -020004391227 -020005664332 -020004105055 -020004280939 -020004105319 -020004351819 -020004845424 -020004359819 -020006265381 -020005322412 -020004719983 -020005631321 -020003895569 -020003912236 -020006657611 -020004048521 -020003843318 -020004308010 -020003956458 -020004516044 -020004028898 -020006388711 -020005244533 -020004855953 -020004317519 -020005589062 -020004403309 -020005639722 -020006468191 -020004475026 -020006503751 -020004094780 -020005344703 -020004962484 -020004085627 -020003857609 -020006681381 -020004603504 -020006700661 -020003756527 -020004029457 -020004579728 -020005137302 -020004580898 -020004640226 -020005324463 -020004611985 -020004589018 -020004701175 -020005067154 -020006844231 -020004378755 -020004705107 -020004728556 -020005225482 -020004324990 -020005703772 -020003958907 -020005829962 -020004812545 -020005599603 -020004553915 -020005909552 -020004592108 -020004373517 -020004236989 -020004740387 -020004953424 -020005419151 -020006204921 -020004432370 -020005246083 -020004809305 -020004921568 -020006414051 -020004699517 -020004686966 -020004507368 -020004845566 -020006843091 -020005607562 -020005928102 -020005490352 -020004696605 -020004865257 -020005575043 -020004987926 -020003414947 -028026488 -020003597024 -020004738471 -020003564164 -020004553411 -020003461578 -022691120 -020003182638 -020004777461 -020004064332 -020744216 -027498632 -020003506595 -023032271 -020005744212 -020004885505 -020005900452 -020004693747 -020005074815 -020005468072 -020003764580 -020004965517 -020007176641 -020005283484 -020005713413 -020005236293 -020005720442 -020004330539 -020005531753 -020007034831 -020007305511 -020005861982 -020005775983 -020003788957 -020005975172 -020004663899 -020005386144 -020006609581 -020004133039 -020005035375 -020004884588 -020005099556 -020007390911 -020005760873 -020005021048 -020006199092 -020005190004 -020004722715 -020005527164 -020007537971 -020004980066 -020004704249 -020005892283 -020004732207 -020006232942 -020004918868 -020005192896 -020007667311 -020004989398 -020007634441 -020005155257 -020006957991 -020007106211 -020005268715 -020007660811 -020004970205 -020004627675 -020004703536 -020007729571 -020007634671 -020005573314 -020004676109 -020004638768 -020005226084 -020005117416 -020005688292 -020005659304 -020004749349 -020006235552 -020004527110 -020007661711 -020005982203 -020005295306 -020007188841 -020007780811 -020004480188 -020007569521 -020006321722 -020004855608 -020005397565 -020005542684 -020007799701 -020005576724 -020005320687 -020006260652 -020005651084 -021699853 -020003211467 -020004212672 -020003311478 -023115669 -022053955 -020004028623 -020003854803 -022269713 -020004367491 -020003489234 -020003968141 -020004088703 -020004781631 -020003590698 -020003608224 -021764301 -024569436 -028897136 -020003347254 -027004176 -020003804756 -020003269885 -020004230903 -020909972 -020003690530 -020003226696 -020004083264 -020003742206 -025347015 -020004291153 -020004498423 -020003794844 -020003834190 -020003756936 -020003511559 -020003877095 -020003487918 -020004685822 -020003885889 -020003859649 -020003564235 -020004316152 -020003844290 -020003810679 -020004611121 -020004261744 -020003281276 -020003797567 -020004515253 -020004924352 -020003741998 -020004576931 -020003953776 -020004879391 -020003606930 -020003836000 -020003820747 -020004514243 -020004065301 -020004002255 -020003701809 -020003967615 -020004673341 -023079283 -020004371223 -020003834269 -020003998142 -020005491341 -020004762351 -020005058981 -020004007182 -020004365432 -020004243373 -020004081526 -020004109482 -020003898056 -020005321451 -020004066579 -020004152485 -020004386274 -020003626450 -020004306653 -020003746067 -020004007525 -020004174104 -020004034759 -020004118316 -020005108101 -020003575255 -020005378251 -020004803142 -020004605093 -020003578367 -020004499083 -020003684524 -020003956310 -020004024798 -020004911582 -020004676942 -020005315441 -020005450321 -020004520313 -020005014731 -020003667279 -020005111272 -020005045472 -020003872436 -020004030080 -020005636231 -020003800375 -020004406494 -020004175355 -020004066941 -020005318352 -020005022482 -020003932950 -020003842090 -020003950158 -020004532024 -023848787 -020004698222 -020003320654 -020004430581 -020003317020 -020003697824 -020003997801 -025731975 -020003413630 -020003374006 -020003980663 -027051673 -027208549 -029903465 -027792784 -020003311545 -020003356864 -022120906 -023757053 -020004074581 -020003527228 -020003297107 -020002220051 -020003526434 -020003740864 -020003438775 -020003958341 -025944636 -027254319 -028068077 -026641741 -020004125482 -020003629339 -020004398392 -022283492 -020003444186 -022260920 -020003506690 -021615995 -020003505914 -023691708 -020004385372 -020004292781 -020003413417 -026580479 -020004034222 -028432029 -020003384586 -020003438709 -020004034062 -020003506854 -020003373047 -022850287 -020003844314 -020004087263 -020004657911 -020003376667 -020004576882 -020003421694 -020003333266 -024739738 -020003609754 -022630719 -020003403645 -020003483055 -020004141901 -023640399 -020004177831 -020003979512 -024127386 -024093227 -027507965 -020004251691 -020003269657 \ No newline at end of file diff --git "a/pkg/slack/houston/command/[\"020007091041\",\"020006582162\",\"02000810" "b/pkg/slack/houston/command/[\"020007091041\",\"020006582162\",\"02000810" deleted file mode 100644 index 4e5320f..0000000 --- "a/pkg/slack/houston/command/[\"020007091041\",\"020006582162\",\"02000810" +++ /dev/null @@ -1 +0,0 @@ -["020007091041","020006582162","020008101671","020006309823","020008344001","020008364981","020005674135","020005019339","020006693612","020005633437","020004730030","020005927584","020005447816","020005660997","020006171863","020005667075","020005314367","020006163912","020004791270","020008274491","020007904631","020004441634","020004442564","020003977800","020005083822","020003883850","020003901247","020003800026","020005794061","020005262551","020004367433","020004474784","020005925561","020006074041","020004749644","020004862063","020004767843","020004060670","020004066814","025221920","020003707965","020003605755","020005994721","020005172043","020004949973","020004225623","020004185030","020003851584","020004266845","020004048067"] \ No newline at end of file