Skip to content

Commit

Permalink
add changes to production (#2732)
Browse files Browse the repository at this point in the history
* feat(maestro): WIP

* feat(maestro): WIP

* feat(maestro): WIP

* feat(maestro): WIP

* feat(maestro): WIP

* feat(maestro): WIP

* feat(maestro): WIP

* feat(maestro): WIP

* feat(maestro): WIP, still missing monitor piece.

* feat(sinker): WIP.

* feat(sinker): WIP.

* feat(sinker): adding test cases to sinker new flow.

* feat(sinker): adding test cases to sinker new flow.

* feat(sinker): adding test cases to sinker new flow.

* feat(sinker): wiring new services.

* feat(sinker): clean up.

* feat(sinker): fix and clean up.

* feat(sinker): fix and clean up.

* feat(sinker): fix and clean up.

* feat(sinks): sinks new flow.

* feat(sinks): WIP

* fix(orb-ui): V1 Policy View new layout (#2646)

* feat(sinks): WIP

* feat(sinks): WIP

* feat(sinker): removed sinker non-otel pieces.

* feat(sinker): cleaning and fixes on sinker.

* feat(sinker): cleaning and fixes on sinker.

* improvement(orb-ui): #1191 Delete Selected Modal (#2649)

* improvement(orb-ui): #1191 Delete Selected Modal

* policy duplicate style

* feat(maestro): cleaning and fixes.

* feat(maestro): cleaning and fixes.

* feat(sinks): cleaning and fixes.

* feat(sinker): cleaning and fixes.

* feat(sinker): cleaning and fixes.

* feat(maestro): cleaning and fixes.

* feat(maestro): cleaning and fixes.

* feat(maestro): cleaning and fixes.

* feat(maestro): cleaning and fixes.

* fix(maestro): increase log tail on otel-collectors.

* fix(orb-ui): Sink details partial edit (#2658)

* feat(orb-ui): #26 Policy View Tabs (#2657)

* feat(orb-ui): #26 Policy View Tabs

* fix: datset table

* Remove comments and unnused imports

* New develop version 0.28.0 (#2656)

New develop version 0.28.0 (#2656)

* feat(maestro): adding the subtle pg import. (#2659)

Co-authored-by: Luiz Pegoraro <[email protected]>

* fix migrate query

* adding uuid as ID to follow the standard

* feat(maestro): add observability and logs to new flow on maestro.

* feat(orb-ui): #1267 Agent View Tabs (#2661)

* feat(maestro): adding more logs and removing return which could be omitting logs.

* feat(maestro): adding more logs and removing return which could be omitting logs.

* feat(logs): fixing logs and changing size source in otlp receiver.

* feat(logs): add more logs to check for errors.

* fix: (maestro) reference for redis streams

* feat(maestro): enhanced readability of sinker activity listener code.

* fix(sinks-maestro): fix encode and decode message.

* fix(maestro): fix config as byte for postgres support.

* fix(maestro): fix config as byte for postgres support.

* feat(logs): adding logs and unit tests.

* fix(orb-ui): Minor Adjustments on tabs components (#2665)

* feat(logs): adding logs and unit tests.

* feat(maestro): fixing and adding new tests.

* adding backend field on migrate db (#2668)

* fix (maestro): ommiting id once that is default random uuid (#2669)

* fix (maestro): lastInsertId not necessary (#2670)

Co-authored-by: etaques <[email protected]>

* fix(maestro): adding test cases and fixes logic for handling events (#2667)

* feat(maestro): fix update event and add redundancy to update when there isnt a deployment in db.

* feat(maestro): add unit test for delete

* feat(maestro): add unit test for delete

* feat(maestro): fix delete flow.

* feat(maestro): fixes sink activity.

* feat(maestro): fixes not encoding

* feat(maestro): fixes create flow.

* feat(maestro): fix on handle activity.

* fix (ci): required step to publish on stg

* fix(maestro): fixes sink idle event (#2672)

* feat(maestro): fix update event and add redundancy to update when there isnt a deployment in db.

* feat(maestro): add unit test for delete

* feat(maestro): add unit test for delete

* feat(maestro): fix delete flow.

* feat(maestro): fixes sink activity.

* feat(maestro): fixes not encoding

* feat(maestro): fixes create flow.

* feat(maestro): fix on handle activity.

* feat(maestro): fix on handle idle.

* feat(maestro): fix on handle idle.

* feat(maestro): unique sink ids for not racing.

* feat(maestro): fix failing test.

* fix(orb-ui): fit height tabs components (#2674)

* fix(maestro): fix unit tests and flows. (#2673)

* feat(maestro): fix update event and add redundancy to update when there isnt a deployment in db.

* feat(maestro): add unit test for delete

* feat(maestro): add unit test for delete

* feat(maestro): fix delete flow.

* feat(maestro): fixes sink activity.

* feat(maestro): fixes not encoding

* feat(maestro): fixes create flow.

* feat(maestro): fix on handle activity.

* feat(maestro): fix on handle idle.

* feat(maestro): fix on handle idle.

* feat(maestro): unique sink ids for not racing.

* feat(maestro): fix failing test.

* feat(maestro): fix failing test.

* feat(maestro): fix failing test.

* feat(maestro): skipping data race test.

* feat(maestro): skipping data race test.

* fix(maestro): fix maestro

* fix(maestro): fix SQL.

* fix(maestro): fix SQL.

* fix(maestro): fix SQL.

* fix(maestro): fix sqls (#2675)

* fix(maestro): fix maestro

* fix(maestro): fix SQL.

* fix(maestro): fix SQL.

* fix(maestro): fix SQL.

---------

Co-authored-by: Luiz Pegoraro <[email protected]>

* fix(maestro): change how read sinker events.

* fix(orb-ui): User able to create and edit yaml policies using json … (#2676)

* fix(orb-ui): User able to create and edit yaml policies using json | Include upload file policy view

* fix translation

* fix(maestro): fix event reading.

* feat(maestro): fix reading event and add logs to errors. (#2678)

feat(maestro): fix reading event and add logs to errors. (#2678)

* feat(maestro): fix args sent to find.

* feat(maestro): add repository tests and fixed errors on repository.

* fix (maestro): upgrade kubectl to k8s 1.27.4

* feat(maestro): fix get deployment and add logs to sink_activity. (#2690)

* feat(maestro): fix get deployment and add logs to sink_activity.

* feat(maestro): fix update deployment.

* feat(maestro): remove redundancy.

* feat(maestro): fix typo.

* feat(maestro): add debug logs to sinker listeners. (#2691)

* fix(maestro): fix decode event (#2692)

* feat(maestro): add debug logs to sinker listeners.

* feat(maestro): fix decode event.

* feat(maestro): add logs to understand better the fixes.

* feat(maestro): add logs to understand better the fixes.

* feat(maestro): fix decrypt. (#2694)

* fix(maestro): injection on monitor was missing (#2695)

* feat(maestro): fix decrypt.

* feat(maestro): fix monitor injection.

* feat(maestro): remove debug

* feat(maestro): fix storing decoded auths. (#2696)

* fix (sinks): maestro status event source subscribe

* fix (maestro): event source topic name

* set sink status when deployment status change

* feat(maestro): fix doubling update. (#2699)

* set sink status when deployment status change (#2700)

Co-authored-by: etaques <[email protected]>

* fix(orb-ui): #1281 Accordions and Tabs closing after refresh (#2701)

* fix(maestro): logs filtering to make it more clear the error (#2702)

* feat(logs): reduced a few messages of duration to debug level on other microservices.

* feat(maestro): remove debug logs

* feat(maestro): add log to compare collector name and deployment name

* fix (maestro) collectorName should be deployment name (#2703)

* set sink status when deployment status change

* fix (maestro) collectorName should be deployment name

---------

Co-authored-by: etaques <[email protected]>

* feat(sinks): add log on receiveing message from maestro.

* feat(sinks): add log on receiveing message from maestro. (#2704)

* feat(sinks): add log on receiveing message from maestro.

* fix: (maestro) monitor to kill orphaned otelcollectors

* fix: (sinks) update state

* fix: (maestro) monitor to kill orphaned otelcollectors (#2705)

* set sink status when deployment status change

* fix: (maestro) monitor to kill orphaned otelcollectors

* fix: (sinks) update state

---------

Co-authored-by: etaques <[email protected]>

* feat(sinker): add debounce of 1 min per sinker to not publish every metric on redis sink_activity.

* fix(orb-ui): improvements on view headers (#2706)

* fix: (sinks) update state

* add changes

* add changes

* refactor: update readme and fix linting errors (#2708)

* updated README
* fix missing imports and @include
* updated tslint.json: remove deprecated/reduntant rules
* update lint:fix
* fix scss linting
* add task for fixing scss lint

* fix(maestro): fix re-uping errored container without update. (#2710)

Co-authored-by: Luiz Pegoraro <[email protected]>

* add changes

* add changes

* add changes

* add changes

* add changes

* add changes

* fix(sinks): add new changes to postgres. (#2711)

* fix(maestro): fix re-uping errored container without update.

* fix(maestro): fix re-uping errored container without update.

---------

Co-authored-by: Luiz Pegoraro <[email protected]>

* feat(maestro): update error message not showing and on update sink not rolling back to unknown.

* feat(maestro): fix not deploying based on last status.

* feat(maestro): fix update deployment.

* feat(maestro): fix update deployment.

* feat(maestro): fix update deployment.

* fix (maestro): reset error message when sink update (#2717)

Co-authored-by: etaques <[email protected]>

* feat(maestro): add rules to activity, so sink does not switch from active to provisioning everytime.

* feat(maestro): change base status to unknown.

* feat(maestro): change base status to unknown.

* hotfix: update UI dockerfiles (#2713)

* update node to v14.21.3 (lts/fermium)

* replace yarn with npm

* fix (kind): update kind and kubectl to 1.27 (#2719)

* update kind and kubectl to 1.27

* Update values.yaml

* fix (maestro): activity and error event synchronization (#2720)

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

* trying to fix events

---------

Co-authored-by: etaques <[email protected]>

* fix: (sinker): idle state based on redis pubsub keystore events

* improvements(orb-ui): Dataset Windows (#2721)

* improvements(orb-ui): Dataset Windows

* console.log

* fix: (sinker): idle state based on redis pubsub keystore events

* Update sink_key_expire.go

* Update sinker_idle.go

* Update sinker_idle.go

* Update sinker_test.go

* Update sinker_test.go

* Update Chart.yaml

* fix (kind): [ENG-1279] psp on kind (#2724)

* fix (kind): disable psp on kind

* Update values.yaml

* Update Makefile

* fix (kind): chart version to 1.0.52 (#2725)

* fix(orb-ui) #1303 Code editors expose syntax errors (#2726)

* fix(orb-ui) #1303 Code editors expose syntax errors

* lint fix

* fix lint 2

* fix(orb-ui): Validate agent metadata before searching for agent version (#2727)

* fix: (sinker) idle expire message (#2729)

* fix: (sinker) idle message

* fix: (sinker) idle message

* fix: (sinker) idle message

* fix: (sinker) idle message

* Update Chart.yaml

* fix: (sinker) idle message

* fix: (sinker) idle message

---------

Co-authored-by: etaques <[email protected]>

* fix (maestro): returning sink from idle to active (#2730)

* fix: (sinker) idle message

* fix: (sinker) idle message

* fix: (sinker) idle message

* fix: (sinker) idle message

* Update Chart.yaml

* fix: (sinker) idle message

* fix: (sinker) idle message

* fix (maestro) returning from idle to active

---------

Co-authored-by: etaques <[email protected]>

* feat(kind): adding local development tools (#2731)

* feat(kind): adding local development tools

* feat(kind): adding local development tools

* feat(kind): adding local development tools

* feat(kind): adding local development tools

* feat(kind): adding local development tools

* feat(kind): adding local development tools

* feat(kind): adding local development tools

* feat(kind): adding local development tools

---------

Co-authored-by: etaques <[email protected]>

* fix(orb-ui): edit policy validate json config (#2728)

* feat(ui): add color to new status (#2734)

* feat(ui): add colour to new statuses.

* add colors on delete selected modal

---------

Co-authored-by: Luiz Pegoraro <[email protected]>

* feat(orb-ui): Expose warning sink messages (#2735)

* feat(orb-ui): Expose warning sink messages

* remove sink details scss

* fix(orb-ui): Sink state circle colors (#2736)

* fix(orb-ui): Sink state circle colors

* fix background

* fix(orb-ui): Active policies formatting (#2737)

* feat(maestro): add redundancy to create deployment when receives activity without deployment in the database.

* feat(maestro): fix unit test

* feat(maestro): fix unit test

* feat(maestro): fix unit test

* fix (maestro): create db, add unique constraint (#2742)

* fix (maestro) db and typo on activity variable (#2743)

* Update init.go

* fix maestro

* Update init.go

* Update deploy_service.go

* Update repository_test.go

---------

Co-authored-by: Luiz Pegoraro <[email protected]>
Co-authored-by: joaoguilherme2003 <[email protected]>
Co-authored-by: Luiz Pegoraro <[email protected]>
Co-authored-by: Luiz Henrique Pegoraro <[email protected]>
Co-authored-by: etaques <[email protected]>
Co-authored-by: Guilhermo Pazuch <[email protected]>
  • Loading branch information
7 people authored Oct 10, 2023
1 parent 75c5ec0 commit ca4cb9d
Show file tree
Hide file tree
Showing 187 changed files with 4,732 additions and 9,415 deletions.
1 change: 1 addition & 0 deletions .github/workflows/go-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -643,6 +643,7 @@ jobs:
- package-policies
- package-sinker
- package-sinks
- package-maestro
- package-ui

runs-on: ubuntu-latest
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ install-helm:

install-kubectl:
cd /tmp && \
curl -LO "https://dl.k8s.io/release/v1.22.1/bin/linux/amd64/kubectl" && \
curl -LO "https://dl.k8s.io/release/v1.27.4/bin/linux/amd64/kubectl" && \
chmod a+x ./kubectl && \
sudo mv ./kubectl /usr/local/bin/kubectl

Expand Down Expand Up @@ -182,7 +182,7 @@ kind-create-all: kind-create-cluster kind-install-orb
kind-upgrade-all: kind-load-images kind-upgrade-orb

kind-create-cluster:
kind create cluster --image kindest/node:v1.22.15 --config=./kind/config.yaml
kind create cluster --image kindest/node:v1.24.0 --config=./kind/config.yaml

kind-delete-cluster:
kind delete cluster
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.27.0
0.28.0
29 changes: 23 additions & 6 deletions cmd/maestro/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ package main
import (
"context"
"fmt"
"github.com/jmoiron/sqlx"
"github.com/orb-community/orb/maestro/postgres"
"io"
"os"
"os/signal"
Expand All @@ -36,9 +38,10 @@ import (
)

const (
svcName = "maestro"
envPrefix = "orb_maestro"
httpPort = "8500"
svcName = "maestro"
envPrefix = "orb_maestro"
sinkPrefix = "orb_sinks"
httpPort = "8500"
)

func main() {
Expand All @@ -48,6 +51,9 @@ func main() {
svcCfg := config.LoadBaseServiceConfig(envPrefix, httpPort)
jCfg := config.LoadJaegerConfig(envPrefix)
sinksGRPCCfg := config.LoadGRPCConfig("orb", "sinks")
dbCfg := config.LoadPostgresConfig(envPrefix, svcName)
encryptionKey := config.LoadEncryptionKey(sinkPrefix)
svcCfg.EncryptionKey = encryptionKey.Key

// logger
var logger *zap.Logger
Expand Down Expand Up @@ -110,8 +116,10 @@ func main() {
}
sinksGRPCClient := sinksgrpc.NewClient(tracer, sinksGRPCConn, sinksGRPCTimeout, logger)
otelCfg := config.LoadOtelConfig(envPrefix)
db := connectToDB(dbCfg, logger)
defer db.Close()

svc := maestro.NewMaestroService(logger, streamEsClient, sinkerEsClient, sinksGRPCClient, streamEsCfg, otelCfg)
svc := maestro.NewMaestroService(logger, streamEsClient, sinkerEsClient, sinksGRPCClient, otelCfg, db, svcCfg)
errs := make(chan error, 2)

mainContext, mainCancelFunction := context.WithCancel(context.Background())
Expand All @@ -132,6 +140,15 @@ func main() {
logger.Error(fmt.Sprintf("Maestro service terminated: %s", err))
}

func connectToDB(cfg config.PostgresConfig, logger *zap.Logger) *sqlx.DB {
db, err := postgres.Connect(cfg)
if err != nil {
logger.Error("Failed to connect to postgres", zap.Error(err))
os.Exit(1)
}
return db
}

func connectToGRPC(cfg config.GRPCConfig, logger *zap.Logger) *grpc.ClientConn {
var opts []grpc.DialOption
tls, err := strconv.ParseBool(cfg.ClientTLS)
Expand Down Expand Up @@ -211,7 +228,7 @@ func loadStreamEsConfig(prefix string) config.EsConfig {
cfg.AllowEmptyEnv(true)
cfg.AutomaticEnv()
var esC config.EsConfig
cfg.Unmarshal(&esC)
_ = cfg.Unmarshal(&esC)
return esC
}

Expand All @@ -226,6 +243,6 @@ func loadSinkerEsConfig(prefix string) config.EsConfig {
cfg.AllowEmptyEnv(true)
cfg.AutomaticEnv()
var esC config.EsConfig
cfg.Unmarshal(&esC)
_ = cfg.Unmarshal(&esC)
return esC
}
24 changes: 7 additions & 17 deletions cmd/sinker/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
package main

import (
"context"
"fmt"
kitprometheus "github.com/go-kit/kit/metrics/prometheus"
"github.com/go-redis/redis/v8"
Expand All @@ -20,10 +19,6 @@ import (
"github.com/orb-community/orb/pkg/config"
policiesgrpc "github.com/orb-community/orb/policies/api/grpc"
"github.com/orb-community/orb/sinker"
sinkconfig "github.com/orb-community/orb/sinker/config"
cacheconfig "github.com/orb-community/orb/sinker/redis"
"github.com/orb-community/orb/sinker/redis/consumer"
"github.com/orb-community/orb/sinker/redis/producer"
sinksgrpc "github.com/orb-community/orb/sinks/api/grpc"
stdprometheus "github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
Expand Down Expand Up @@ -102,6 +97,12 @@ func main() {
}

cacheClient := connectToRedis(cacheCfg.URL, cacheCfg.Pass, cacheCfg.DB, logger)
defer func(client *redis.Client) {
err := client.Close()
if err != nil {
log.Fatalf(err.Error())
}
}(cacheClient)

esClient := connectToRedis(esCfg.URL, esCfg.Pass, esCfg.DB, logger)
defer func(esClient *redis.Client) {
Expand Down Expand Up @@ -168,8 +169,6 @@ func main() {
}
sinksGRPCClient := sinksgrpc.NewClient(tracer, sinksGRPCConn, sinksGRPCTimeout, logger)

configRepo := cacheconfig.NewSinkerCache(cacheClient, logger)
configRepo = producer.NewEventStoreMiddleware(configRepo, esClient, logger)
gauge := kitprometheus.NewGaugeFrom(stdprometheus.GaugeOpts{
Namespace: "sinker",
Subsystem: "sink",
Expand All @@ -192,7 +191,7 @@ func main() {
otelEnabled := otelCfg.Enable == "true"
otelKafkaUrl := otelCfg.KafkaUrl

svc := sinker.New(logger, pubSub, esClient, configRepo, policiesGRPCClient, fleetGRPCClient, sinksGRPCClient,
svc := sinker.New(logger, pubSub, esClient, cacheClient, policiesGRPCClient, fleetGRPCClient, sinksGRPCClient,
otelKafkaUrl, otelEnabled, gauge, counter, inputCounter, inMemoryCacheConfig.DefaultExpiration)
defer func(svc sinker.Service) {
err := svc.Stop()
Expand All @@ -204,7 +203,6 @@ func main() {
errs := make(chan error, 2)

go startHTTPServer(svcCfg, errs, logger)
go subscribeToSinksES(svc, configRepo, esClient, esCfg, logger)

err = svc.Start()
if err != nil {
Expand Down Expand Up @@ -307,11 +305,3 @@ func initJaeger(svcName, url string, logger *zap.Logger) (opentracing.Tracer, io

return tracer, closer
}

func subscribeToSinksES(svc sinker.Service, configRepo sinkconfig.ConfigRepo, client *redis.Client, cfg config.EsConfig, logger *zap.Logger) {
eventStore := consumer.NewEventStore(svc, configRepo, client, cfg.Consumer, logger)
logger.Info("Subscribed to Redis Event Store for sinks")
if err := eventStore.Subscribe(context.Background()); err != nil {
logger.Error("Bootstrap service failed to subscribe to event sourcing", zap.Error(err))
}
}
36 changes: 23 additions & 13 deletions cmd/sinks/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@ package main
import (
"context"
"fmt"
"io"
"io/ioutil"
"log"
"net"
"net/http"
"os"
"os/signal"
"strconv"
"strings"
"syscall"
"time"

authapi "github.com/mainflux/mainflux/auth/api/grpc"
mfsdk "github.com/mainflux/mainflux/pkg/sdk/go"
opentracing "github.com/opentracing/opentracing-go"
Expand All @@ -27,17 +39,6 @@ import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"google.golang.org/grpc/reflection"
"io"
"io/ioutil"
"log"
"net"
"net/http"
"os"
"os/signal"
"strconv"
"strings"
"syscall"
"time"

kitprometheus "github.com/go-kit/kit/metrics/prometheus"
r "github.com/go-redis/redis/v8"
Expand Down Expand Up @@ -126,6 +127,7 @@ func main() {
go startHTTPServer(tracer, svc, svcCfg, logger, errs)
go startGRPCServer(svc, tracer, sinksGRPCCfg, logger, errs)
go subscribeToSinkerES(svc, esClient, esCfg, logger)
go subscribeToMaestroStatusES(svc, esClient, esCfg, logger)

go func() {
c := make(chan os.Signal)
Expand Down Expand Up @@ -193,7 +195,7 @@ func newSinkService(auth mainflux.AuthServiceClient, logger *zap.Logger, esClien
mfsdk := mfsdk.NewSDK(config)

svc := sinks.NewSinkService(logger, auth, repoSink, mfsdk, passwordService)
svc = redisprod.NewEventStoreMiddleware(svc, esClient)
svc = redisprod.NewSinkStreamProducerMiddleware(svc, esClient)
svc = sinkshttp.NewLoggingMiddleware(svc, logger)
svc = sinkshttp.MetricsMiddleware(
auth,
Expand Down Expand Up @@ -286,6 +288,14 @@ func subscribeToSinkerES(svc sinks.SinkService, client *r.Client, cfg config.EsC
eventStore := rediscons.NewEventStore(svc, client, cfg.Consumer, logger)
logger.Info("Subscribed to Redis Event Store for sinker")
if err := eventStore.Subscribe(context.Background()); err != nil {
logger.Error("Bootstrap service failed to subscribe to event sourcing", zap.Error(err))
logger.Error("Bootstrap service failed to subscribe to sinker event sourcing", zap.Error(err))
}
}

func subscribeToMaestroStatusES(svc sinks.SinkService, client *r.Client, cfg config.EsConfig, logger *zap.Logger) {
eventStore := rediscons.NewSinkStatusListener(logger, client, svc)
logger.Info("Subscribed to Redis Event Store for maestro")
if err := eventStore.SubscribeToMaestroSinkStatus(context.Background()); err != nil {
logger.Error("Bootstrap service failed to subscribe to maestro event sourcing", zap.Error(err))
}
}
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ RUN make $SVC \
FROM alpine:latest
ARG SVC

RUN if [[ "maestro" == "$SVC" ]]; then apk update && apk add --no-cache docker-cli bash curl && curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl && chmod +x ./kubectl && mv ./kubectl /usr/local/bin/kubectl; fi
RUN if [[ "maestro" == "$SVC" ]]; then apk update && apk add --no-cache docker-cli bash curl && curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.27.4/bin/linux/amd64/kubectl && chmod +x ./kubectl && mv ./kubectl /usr/local/bin/kubectl; fi
# Certificates are needed so that mailing util can work.
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /exe /
Expand Down
Loading

0 comments on commit ca4cb9d

Please sign in to comment.