Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

master #46

Merged
merged 184 commits into from
Aug 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
184 commits
Select commit Hold shift + click to select a range
87fd920
makefile: fix linter for mac and linux
h3llix Nov 1, 2022
314118e
master: fix fiber dependency and structure change
h3llix Nov 1, 2022
64a512d
katana(*): fix project lint issues
h3llix Nov 1, 2022
0fe438e
make: fix build
h3llix Nov 1, 2022
1e4f366
Add InfraSet
Bisht13 Dec 28, 2022
e30b526
Reloading of Manifests
Bisht13 Dec 28, 2022
8826c08
Minor fix in reloading manifests
Bisht13 Dec 28, 2022
68f2c43
Auth Complete
Bisht13 Dec 29, 2022
abb0eb6
Add new logging controller
h4shk4t Dec 29, 2022
8741581
Revert last commit
h4shk4t Dec 29, 2022
3953245
manifest: add manifest for spawning mongo
h3llix Dec 30, 2022
7e275d0
Half logging done
Bisht13 Dec 30, 2022
f92d4d7
Add mongodb support to katana
h4shk4t Jan 1, 2023
913a421
[WIP] Automate getting cluster IP for mongoDB
h4shk4t Jan 1, 2023
c9427c9
Deploy to All added
Bisht13 Jan 2, 2023
36d648e
Add more config fields
Bisht13 Jan 2, 2023
5396b8b
Rebase
Bisht13 Jan 2, 2023
3e2ddbc
Autogenerate mongoDB URL
h4shk4t Jan 4, 2023
1d2db34
Use ChallengeDeployerHost config URL
h4shk4t Jan 17, 2023
77e3742
Update config file
h4shk4t Jan 22, 2023
26e2079
Update set-env merged
h4shk4t Nov 15, 2022
fee2ebb
Refractor
Bisht13 Jan 22, 2023
0c46437
Team namespaces (#51)
h4shk4t Feb 11, 2023
d3bdbda
Add Git server
Bisht13 Feb 20, 2023
7b8ccc1
Integrate logs manifests into one YAML
Bisht13 Feb 21, 2023
14d01d1
Integrate mongo manifests into one YAML
Bisht13 Feb 21, 2023
b0cfac7
Mysql integration (#55)
Bisht13 Feb 21, 2023
ce74ffe
Fix secrets
h4shk4t Feb 22, 2023
253a7f2
Add MySQL secret
Bisht13 Feb 22, 2023
ea1854c
change /etc/hosts
levihackerman-102 Mar 7, 2023
64d31bf
MySQL setup
Bisht13 Mar 7, 2023
aa787b6
Headless service
levihackerman-102 Mar 7, 2023
ad4ab57
Create Gogs User
Bisht13 Mar 7, 2023
c7c5064
send ssh credentials to team pod
P3rcy-8685 Mar 7, 2023
a38c52a
clean up
Bisht13 Mar 7, 2023
2c17e24
Finish MySQL setup till end
h4shk4t Mar 7, 2023
0a6f2a0
Throw exceptions at error
h4shk4t Mar 7, 2023
6ec7fd5
WIP: MySQL conn
Bisht13 Mar 8, 2023
6cd884b
Use MySQL service ip instead of cluster IP
h4shk4t Mar 8, 2023
85caed2
Make gogs Service work with go request
h4shk4t Mar 8, 2023
d12da24
Reconfigure ssh for namespaces
P3rcy-8685 Mar 9, 2023
76a584f
ssh service controller
P3rcy-8685 Mar 9, 2023
88a7067
add namespace to mongoDB
P3rcy-8685 Mar 9, 2023
90b36c2
remove team name and use Team.namespace instead
P3rcy-8685 Mar 9, 2023
d6afae2
integrate namespaces to ssh service
P3rcy-8685 Mar 9, 2023
facd4cb
Fix MySQL query
h4shk4t Mar 9, 2023
cd5bc4b
password check in ssh
P3rcy-8685 Mar 9, 2023
71a4613
Finishing touches to ssh
P3rcy-8685 Mar 9, 2023
cdbf2ae
Remove debugging statements
P3rcy-8685 Mar 9, 2023
e6bac99
Merge pull request #58 from sdslabs/ssh-check
h4shk4t Mar 9, 2023
a7e15a2
Gogs IP utility
h4shk4t Mar 9, 2023
0594b5e
environment variables
P3rcy-8685 Mar 9, 2023
5a5bcf4
Fix Deploy for all namespaces
Bisht13 Mar 9, 2023
b875adc
Deploy
P3rcy-8685 Mar 9, 2023
2ba68f1
Mysql config
P3rcy-8685 Mar 9, 2023
fe5ab7d
Add Access Token MySQL
Bisht13 Mar 9, 2023
3bfe15d
Add Gogs Admin
Bisht13 Mar 10, 2023
0818ce9
Gogs Admin check
Bisht13 Mar 10, 2023
305417d
patching and gogs fully functional
P3rcy-8685 Mar 10, 2023
bbeb355
create team folders
Mar 10, 2023
776e459
Add Admin's Access Token
Bisht13 Mar 10, 2023
52c66ef
go sum mod
Bisht13 Mar 10, 2023
a607cc0
Challenge update (#59)
Bisht13 Mar 14, 2023
5dd1e4a
checks and creates the latest chall/chall<no.of.challenge>
ashpect May 27, 2023
60f19b2
simplify dir structure
ashpect May 27, 2023
1d72a77
recieve zip and put in folders
ashpect May 28, 2023
11347f1
unarchive zip
ashpect May 28, 2023
c79130f
get filename without hardcoded approach
ashpect May 30, 2023
148e855
static direct deployment
ashpect Jun 3, 2023
0b71196
challenge gets deployed
ashpect Jun 3, 2023
4c742d8
minor change
ashpect Jun 3, 2023
d941b55
increase file limit for fiber
ashpect Jun 4, 2023
6b11dad
update image build
ashpect Jun 4, 2023
5e81986
minor fixes and challcopy namechange
ashpect Jun 4, 2023
65cf7c4
update go.mod
ashpect Jun 4, 2023
1cc5376
finish bugs in patching
P3rcy-8685 Jun 5, 2023
0f779f3
Service struct
ashpect Jun 6, 2023
5a33648
Service creation
ashpect Jun 6, 2023
bcc648e
proper structure
ashpect Jun 6, 2023
6418322
deleteChall route
ashpect Jun 6, 2023
b472071
cleanup commit
ashpect Jun 7, 2023
c23285b
checks and creates the latest chall/chall<no.of.challenge>
ashpect May 27, 2023
e18dace
simplify dir structure
ashpect May 27, 2023
8066125
recieve zip and put in folders
ashpect May 28, 2023
7114f31
unarchive zip
ashpect May 28, 2023
02248b1
get filename without hardcoded approach
ashpect May 30, 2023
2e563a7
static direct deployment
ashpect Jun 3, 2023
8cdb5b4
challenge gets deployed
ashpect Jun 3, 2023
a33f704
minor change
ashpect Jun 3, 2023
f295360
increase file limit for fiber
ashpect Jun 4, 2023
8e0fa5c
update image build
ashpect Jun 4, 2023
c4cf84b
minor fixes and challcopy namechange
ashpect Jun 4, 2023
5878bac
update go.mod
ashpect Jun 4, 2023
7f5b6c7
Service struct
ashpect Jun 6, 2023
03d4bca
Service creation
ashpect Jun 6, 2023
7b59608
proper structure
ashpect Jun 6, 2023
3990145
deleteChall route
ashpect Jun 6, 2023
9b89c9b
cleanup commit
ashpect Jun 7, 2023
d38af68
Merge branch 'challengeDeploy' of github.com:sdslabs/katana into chal…
P3rcy-8685 Jun 7, 2023
c662a2a
ChallangeDeploy: expose challenge to localhost (minikube)
jainl28patel Jun 10, 2023
3aca0ab
finish deployement
P3rcy-8685 Jun 15, 2023
fc590df
allows cors all
P3rcy-8685 Jun 15, 2023
38d8b0e
fix bugs
P3rcy-8685 Jun 15, 2023
34b65a0
add root_directory as env var
P3rcy-8685 Jun 16, 2023
3bc57df
variable context timeout, refactor code
P3rcy-8685 Jun 17, 2023
0b93fc1
remove unnecessary token part
ashpect Jun 17, 2023
95b3aa2
remove int32ptr func
ashpect Jun 18, 2023
6da9a5c
merge cleanup
ashpect Jun 22, 2023
f4823a3
fix bug
ashpect Jun 22, 2023
988d6aa
fix issues
P3rcy-8685 Jun 23, 2023
e5df7ab
minor fix
ashpect Jun 25, 2023
e4afc3a
Minor fixes
Bisht13 Jun 25, 2023
55212b2
go mod tidy
Bisht13 Jun 25, 2023
cec86c9
Merge pull request #62 from sdslabs/deployement
Bisht13 Jun 25, 2023
6787802
Minor Fixes
Bisht13 Jun 27, 2023
8f15184
Add Harbor lib
Bisht13 Jul 11, 2023
0fbd0f9
Harbor manifest
ashpect Jul 11, 2023
44ac89f
Parse values to Harbor YAML
Bisht13 Jul 11, 2023
70b7024
fix bug
ashpect Jul 11, 2023
a335aed
Set Admin Password for Harbor
Bisht13 Jul 11, 2023
cae4d75
Generate certs
Bisht13 Jul 11, 2023
a23c095
Minor fix
ashpect Jul 11, 2023
bc05ca2
Populate Certs for Harbor
Bisht13 Jul 11, 2023
60fead4
Minor Fix
Bisht13 Jul 11, 2023
f61de8b
Add ca.crt to yml
Bisht13 Jul 11, 2023
417b8a4
Integrate Harbor into Katana
Bisht13 Jul 11, 2023
3c033e5
Setup Harbor backend
Bisht13 Jul 12, 2023
fac7e12
Finish Harbor
Bisht13 Jul 12, 2023
e939aff
update buildimage
ashpect Jul 12, 2023
3dafa43
Minor refractoring
Bisht13 Jul 12, 2023
9bb0217
Minor fixes
Bisht13 Jul 12, 2023
7e2ebb8
Final Touches of Harbor
Bisht13 Jul 13, 2023
a074e43
Remove redundent log + 69th commit
Bisht13 Jul 13, 2023
0a99a5f
Fix docker image build
ashpect Jul 13, 2023
4d05948
Update deleteChall
ashpect Jul 13, 2023
d16cdc4
minor fixes
ashpect Jul 13, 2023
33ae2d3
cleanup
ashpect Jul 13, 2023
04d7b4e
Merge branch 'challengeDeploy' of github.com:sdslabs/katana into chal…
ashpect Jul 13, 2023
fafd16b
Refractoring
Bisht13 Jul 14, 2023
46d58fd
Refractoring
Bisht13 Jul 14, 2023
42cdfba
change service
ashpect Jul 15, 2023
9c37f2c
Fix Gogs YAML
Bisht13 Jul 15, 2023
f31ac97
Add Ingress for exposing services
Bisht13 Jul 15, 2023
c003a7b
Add Ingress for mongo, mysql, gogs
Bisht13 Jul 15, 2023
71e6b45
Add Hosts for Ingress and refractor
Bisht13 Jul 15, 2023
a83ccfd
More refractoring
Bisht13 Jul 15, 2023
0463969
Template Mongo and MySQL yamls
Bisht13 Jul 15, 2023
8f27a00
Update go.mod for Dependabot alerts
Bisht13 Jul 15, 2023
e165535
Clean up
Bisht13 Jul 15, 2023
9fd45de
Minor fix
Bisht13 Jul 15, 2023
767e5cd
Change Harbor service to Ingress
Bisht13 Jul 16, 2023
31a0e2c
Minor fix
Bisht13 Jul 17, 2023
8b80af5
Add team ingress
Bisht13 Jul 17, 2023
38ebbd8
Refractor challengedeployerservice
Bisht13 Jul 30, 2023
2089f59
Add dynamic ingress host
Bisht13 Jul 30, 2023
1ed4e2c
Minor fixes
Bisht13 Jul 30, 2023
883ac3e
Update Team ingress on challenge deployment
Bisht13 Jul 30, 2023
111a460
minor flow update for make-set-env-prod
ashpect Jul 30, 2023
2efd655
minor fix
ashpect Jul 31, 2023
fd3dd69
Patching deployment
ashpect Jul 31, 2023
eb43d3a
minor testing-fix
ashpect Jul 31, 2023
66353c2
Team ingress via go client
Bisht13 Jul 31, 2023
205b9dd
Minor fixes
Bisht13 Jul 31, 2023
b8e1419
Minor fixes
Bisht13 Aug 1, 2023
fcb91fb
Fix YAMLs
Bisht13 Aug 1, 2023
b7e92f2
Fix infraSet infinite loop
Bisht13 Aug 1, 2023
5d645c4
LB's for katana setup services
ashpect Aug 5, 2023
ca9b696
fix code to add loadbalancer
P3rcy-8685 Aug 5, 2023
5a3f165
Minor fixes
Bisht13 Aug 5, 2023
28a6c69
Fix patching
P3rcy-8685 Aug 7, 2023
9008c03
Fix storage issue
Bisht13 Aug 7, 2023
cf58eac
finish aks patching
P3rcy-8685 Aug 8, 2023
4308482
Fix patching
Bisht13 Aug 8, 2023
7062d95
final patching
P3rcy-8685 Aug 8, 2023
4c60a18
Minor fixes
Bisht13 Aug 8, 2023
8a1723f
Remove all forms of ingress
Bisht13 Aug 9, 2023
09a77f8
expose harbor via katana-lb
ashpect Aug 9, 2023
9e4d32c
Remove ingress.yml and make harbor work
Bisht13 Aug 9, 2023
7806a82
Minor fixes
Bisht13 Aug 10, 2023
2be3187
Minor fixes
Bisht13 Aug 10, 2023
69f173b
Very minor fix
Bisht13 Aug 10, 2023
42c089d
clean up
Bisht13 Aug 10, 2023
04db0f7
Merge pull request #61 from sdslabs/challengeDeploy
Bisht13 Aug 10, 2023
2e17280
Clean up
Bisht13 Aug 10, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ katana
test.go
vendor/*
*.log
teams/*
teamcreds.txt
lib/harbor/certs/*
36 changes: 19 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ GOBIN := $(PROJECTROOT)/bin
UTILDIR := $(PROJECTROOT)/scripts/utils
SPINNER := $(UTILDIR)/spinner.sh
BUILDIR := $(PROJECTROOT)/scripts/build
CONTROLLER_MANIFEST:= $(PROJECTROOT)/manifests/dev/expose-controller.yml
HELM_MANIFEST:= $(PROJECTROOT)/manifests/templates/helm-values.yml
OPENVPN_MANIFEST:= $(PROJECTROOT)/manifests/templates/helm-values.yml
MANIFEST:= $(PROJECTROOT)/kubernetes/manifests

KEY_NAME := team

Expand All @@ -22,8 +20,6 @@ SERVICE_NAME_COMMAND =$(shell kubectl get svc --namespace $(OPENVPN_NAMESPACE) -
SERVICE_IP_COMMAND=$(shell kubectl get svc --namespace $(OPENVPN_NAMESPACE) -l "app=openvpn,release=openvpn" -o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}')
# CHALLENGE_DEPLOYER_IP := $(shell minikube service nginx-ingress-controller --url -n kube-system)

CREATEBIN := $(shell [ ! -d ./bin ] && mkdir bin)

# Make is verbose in Linux. Make it silent.
MAKEFLAGS += --silent

Expand All @@ -40,7 +36,7 @@ build-cli:
## Lint the code
install-golint:
@printf "🔨 Installing golint\n"
@./scripts/install_golint.sh
@./scripts/install-golint.sh
@printf "👍 Done\n"

## Format the code
Expand All @@ -52,7 +48,7 @@ fmt:
## Check codebase for style mistakes
lint: install-golint
@printf "🔨 Linting\n"
@golint ./...
@golangci-lint run
@printf "👍 Done\n"

## Clean build files
Expand Down Expand Up @@ -83,17 +79,23 @@ gen-certificates:
kubectl --namespace $(OPENVPN_NAMESPACE) exec -it $(POD_NAME) cat "/etc/openvpn/certs/pki/$(KEY_NAME)-$$n.ovpn" > $(KEY_NAME)-$$n.ovpn; \
done

gen-vpn: set-env
helm install openvpn -f $(HELM_MANIFEST) stable/openvpn --namespace openvpn
minikube tunnel

set-env:
set-env: build
minikube start --driver=docker && \
minikube addons enable ingress && \
kubectl apply -f $(CONTROLLER_MANIFEST) && \
sudo -- sh -c "echo \"$(minikube service nginx-ingress-controller --url -n kube-system | awk '{print substr($0,8)}' | awk '{print substr($0, 1, length($0)-6)}' | head -1) challengedeployer.katana.local\" >> /etc/hosts" &&\
go build && \
./katana
kubectl apply -f $(MANIFEST) && \
cp config.sample.toml config.toml && \
./bin/katana run

set-env-prod: build
kubectl apply -f $(MANIFEST) && \
cp config.sample.toml config.toml && \
sudo ./bin/katana run

build:
cd cmd && go build -o ../bin/katana

run : build
sudo ./bin/katana run

# Prints help message
help:
Expand All @@ -106,5 +108,5 @@ help:
@echo "prepare-for-pr - Prepare the code for PR after fmt, lint and checking uncommitted files"
@echo "lint - Lint code using golangci-lint"
@echo "set-env" - Setup Katana environment
@echo "gen-vpn" - Generate VPN configurations
@echo "build" - Build katana binary

21 changes: 0 additions & 21 deletions api/controllers/admin.go

This file was deleted.

41 changes: 0 additions & 41 deletions api/server.go

This file was deleted.

6 changes: 5 additions & 1 deletion cmd/root.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package main

import (
"log"

"github.com/spf13/cobra"
)

Expand All @@ -12,7 +14,9 @@ var rootCmd = &cobra.Command{
that streamlines the setup and management of attack-defence CTFs with automated infrastructure for
challenge dispatcher, VM deployer and flag juggler.`,
Run: func(cmd *cobra.Command, args []string) {
cmd.Help()
if err := cmd.Help(); err != nil {
log.Printf("Failed to print cobra help: %s", err)
}
},
}

Expand Down
4 changes: 2 additions & 2 deletions cmd/run.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package main

import (
"github.com/sdslabs/katana/api"
"github.com/sdslabs/katana/services/master"
"github.com/spf13/cobra"
)

Expand All @@ -25,7 +25,7 @@ var runCmd = &cobra.Command{
// }

// apiServer := api.Server()
return api.Server()
return master.Server()

// if err := g.Wait(); err != nil {
// os.Exit(1)
Expand Down
57 changes: 30 additions & 27 deletions config.sample.toml
Original file line number Diff line number Diff line change
@@ -1,53 +1,56 @@
kubeconfig = ""
kubehost = "http://localhost"
kubehost = "0.0.0.0"
backendurl = "http://52.172.254.231:15528"
rootdirectory = "/opt/katana"
kubenamespace = "default"
verbosity = 3
timeout = 20 # in seconds

[cluster]
deploymentlabel = "katana"
broadcastcount = 2
broadcastlabel = "broadcast"
teamcount = 3
teamcount = 2
teamlabel = "ctfteam"
manifest_dir = "manifests/templates"
manifests = [
"teams.yml",
"broadcast.yml",
"broadcast-service.yml",
"elasticsearch_svc.yml",
"elasticsearch_statefulset.yml",
"kibana.yml",
"fluentd-daemonset.yml",
"ingress.yml",
"openvpn.yml"
templated_manifest_dir = "kubernetes/templates"
templated_manifests = [
"storage-init.yml", # should be first and always present
"gogs.yml",
"mysql.yml",
"mongo.yml",
"harbor.yml",
]

[services.api]
host = "localhost"
port = 3000

[services.challengedeployer]
host = "challengedeployer.katana.local"
port = 8002
broadcastport = 3003
teamclientport = 3004
challengeartifactlabel = "challfile"
host = "0.0.0.0"
port = 15528

[teamvm]
teampodname = "katana-team-master-pod"
containername = "teamvm"
challengedir = "/opt/challenges/"
tmpdir = "/tmp/"
initfile = "run.sh"
daemonport = 3004

[services.sshprovider]
host = "localhost"
host = "0.0.0.0"
port = 2222
creds_file = "teamcreds.txt"
password_length = 10

[mongo]
url = "mongodb://scar:scar@localhost:27017/?authSource=admin"
username = "adminuser"
password = "password123"
port = "32000"
mongosh_version = "1.6.1"

[mysql]
username = "root"
password = "test1234"
port = "32001"

[admin]
username = "sdslabs"
password = "sdslabs"

[harbor]
username = "admin"
password = "Password12345" # NOTE: Password should be 8-128 characters long with at least 1 uppercase, 1 lowercase and 1 number
6 changes: 4 additions & 2 deletions configs/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,15 @@ var (

ClusterConfig = KatanaConfig.Cluster

ChallengeDeployerConfig = ServicesConfig.ChallengeDeployer

SSHProviderConfig = ServicesConfig.SSHProvider

AdminConfig = KatanaConfig.AdminConfig

TeamVmConfig = KatanaConfig.TeamVmConfig

MongoConfig = KatanaConfig.Mongo

MySQLConfig = KatanaConfig.MySQL

HarborConfig = KatanaConfig.Harbor
)
56 changes: 33 additions & 23 deletions configs/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,11 @@ type API struct {
}

type ClusterCfg struct {
DeploymentLabel string `toml:"deploymentlabel"`
BroadcastCount uint `toml:"broadcastcount"`
BroadcastLabel string `toml:"broadcastlabel"`
TeamCount uint `toml:"teamcount"`
TeamLabel string `toml:"teamlabel"`
ManifestDir string `toml:"manifest_dir"`
Manifests []string `toml:"manifests"`
}

type ChallengeDeployerCfg struct {
Host string `toml:"host"`
Port uint `toml:"port"`
BroadcastPort uint `toml:"broadcastport"`
TeamClientPort uint `toml:"teamclientport"`
ArtifactLabel string `toml:"challengeartifactlabel"`
DeploymentLabel string `toml:"deploymentlabel"`
TeamCount uint `toml:"teamcount"`
TeamLabel string `toml:"teamlabel"`
TemplatedManifestDir string `toml:"templated_manifest_dir"`
TemplatedManifests []string `toml:"templated_manifests"`
}

type AdminCfg struct {
Expand All @@ -29,16 +19,17 @@ type AdminCfg struct {
}

type ServicesCfg struct {
API API `toml:"api"`
ChallengeDeployer ChallengeDeployerCfg `toml:"challengedeployer"`
SSHProvider SSHProviderCfg `toml:"sshprovider"`
API API `toml:"api"`
SSHProvider SSHProviderCfg `toml:"sshprovider"`
}

type TeamChallengeConfig struct {
ChallengeDir string `toml:"challengedir"`
TempDir string `toml:"tmpdir"`
InitFile string `toml:"initfile"`
DaemonPort uint `toml:"daemonport"`
TeamPodName string `toml:"teampodname"`
ContainerName string `toml:"containername"`
ChallengeDir string `toml:"challengedir"`
TempDir string `toml:"tmpdir"`
InitFile string `toml:"initfile"`
DaemonPort uint `toml:"daemonport"`
}

type SSHProviderCfg struct {
Expand All @@ -49,11 +40,22 @@ type SSHProviderCfg struct {
}

type MongoCfg struct {
URL string `toml:"url"`
Username string `toml:"username"`
Password string `toml:"password"`
Port string `toml:"port"`
Version string `toml:"mongosh_version"`
}

type MySQLCfg struct {
Username string `toml:"username"`
Password string `toml:"password"`
Port string `toml:"port"`
}

type KatanaCfg struct {
KubeHost string `toml:"kubehost"`
BackendUrl string `toml:"backendurl"`
RootDirectory string `toml:"rootdirectory"`
KubeNameSpace string `toml:"kubenamespace"`
KubeConfig string `toml:"kubeconfig"`
LogFile string `toml:"logfile"`
Expand All @@ -62,4 +64,12 @@ type KatanaCfg struct {
Mongo MongoCfg `toml:"mongo"`
TeamVmConfig TeamChallengeConfig `toml:"teamvm"`
AdminConfig AdminCfg `toml:"admin"`
MySQL MySQLCfg `toml:"mysql"`
Harbor HarborCfg `toml:"harbor"`
TimeOut int `toml:"timeout"`
}

type HarborCfg struct {
Username string `toml:"username"`
Password string `toml:"password"`
}
Loading
Loading