"github.com/sirupsen/logrus"
"k8shelm/pkg/plugin"
"os"
+ "strconv"
)
-const (
- serverPort = 50051
- certificate = ""
- key = ""
- logFile = "/go/release/logfile"
- loggerLevel = logrus.InfoLevel
+// Variables to be defined in deployment file
+var (
+ serverPort = os.Getenv("HELM_PLUGIN_PORT")
+ logFile = os.Getenv("LOGFILE_PATH")
+ loggerLevel = os.Getenv("LOGGER_LEVEL")
+ certificate = os.Getenv("CERTIFICATE_PATH")
+ key = os.Getenv("KEY_PATH")
)
func main() {
}
defer file.Close()
- var logger = plugin.GetLogger(logFile, loggerLevel, file)
+ level, err := logrus.ParseLevel(loggerLevel)
+ var logger = plugin.GetLogger(logFile, level, file)
// Create GRPC server
- serverConfig := plugin.ServerGRPCConfig{Certificate: certificate, Port:serverPort, Key:key, Logger:logger}
+ sp, err := strconv.Atoi(serverPort)
+ serverConfig := plugin.ServerGRPCConfig{Certificate: certificate, Port:sp, Key:key, Logger:logger}
server := plugin.NewServerGRPC(serverConfig)
// Start listening
"os"
)
-// Constants to be taken from deployment file
-const (
- releaseNamespace = "default"
- chartPath = "/go/release/charts/"
- kubeconfigPath = "/go/release/kubeconfig/"
+// Variables to be defined in deployment file
+var (
+ chartPath = os.Getenv("CHART_PATH")
+ kubeconfigPath = os.Getenv("KUBECONFIG_DIR_PATH")
+ releaseNamespace = os.Getenv("RELEASE_NAMESPACE")
)
+
// Helm client
type HelmClient struct {
hostIP string
max-size: "30m"
max-file: "5"
#################################################################################
- applcm-brk:
+ applcm-broker:
network_mode: bridge
image: ealtedge/applcm-broker:latest
depends_on:
- db:dbhost
- helm-plugin:helm.plugin
restart: always
- container_name: applcm-brk
+ container_name: applcm-broker
environment:
MYSQL_DATABASE: 'db'
# So you don't have to use root, but you can if you like
image: ealtedge/helmplugin:latest
restart: always
container_name: helmplugin
+ environment:
+ HELM_PLUGIN_PORT: '50051'
+ # Log file path, also to match dockerfile
+ LOGFILE_PATH: "/go/release/logfile"
+ LOGGER_LEVEL: "logrus.InfoLevel"
+ CERTIFICATE_PATH: ""
+ KEY_PATH: ""
+ # Temp chart file path, to be created in dockerfile
+ CHART_PATH: "/go/release/charts/"
+ # Kubeconfig based directory path, to be created in dockerfile, to hold kubeconfig of hosts with <host-ip>
+ KUBECONFIG_DIR_PATH: "/go/release/kubeconfig/"
+ # Presently all application to be deployed in same namespace, in future it can be an input while app creation
+ RELEASE_NAMESPACE: "default"
ports:
# <Port exposed> : < Applcm helm plugin Port running inside container>
- '50051:50051'
expose:
# Opens port 50051 on the container
- - '8089'
- logging:
- driver: "json-file"
- options:
- max-size: "30m"
- max-file: "5"
+ - '50051'
# yamllint enable