Compare commits

...

2 Commits

8 changed files with 210 additions and 2 deletions

View File

@ -18,7 +18,9 @@ func main() {
// Init tasks
taskItems := []common.Tasker{
tasks.NewListRepositoryMenuTask(config),
tasks.NewListOperationMenuTask(config),
tasks.NewGenerateJwtTokenTask(config),
tasks.NewTestEnvironmentTask(),
tasks.NewCurlLookupTask(),
tasks.NewCodeSecurityScanTask(),
tasks.NewListDevToolCommandTask(config),

View File

@ -0,0 +1,33 @@
package edgestack
import (
"ocl/portainer-devtool/configs"
"ocl/portainer-devtool/tasks/common"
)
type OperationMenuSubTask struct {
common.GeneralTask
}
func NewOperationMenuSubTask(cfg *configs.Config) *OperationMenuSubTask {
return &OperationMenuSubTask{
GeneralTask: *common.NewGeneralTask(cfg),
}
}
func (task *OperationMenuSubTask) Execute() error {
subTaskItems := []common.Tasker{
NewTagOfficialImageSubTask(task.Config),
}
for _, taskItem := range subTaskItems {
taskItem.SetParentTaskers(subTaskItems)
}
common.ListCommandMenu(subTaskItems, "Which management commands do you want to choose:", false, task.ParentTasks)
return nil
}
func (task *OperationMenuSubTask) String() string {
return "edgestack"
}

View File

@ -0,0 +1,40 @@
package edgestack
import (
"ocl/portainer-devtool/configs"
"ocl/portainer-devtool/tasks/common"
"ocl/portainer-devtool/utils"
)
type TagOfficialImageSubTask struct {
common.GeneralTask
}
func NewTagOfficialImageSubTask(cfg *configs.Config) *TagOfficialImageSubTask {
return &TagOfficialImageSubTask{
GeneralTask: *common.NewGeneralTask(cfg),
}
}
func (task *TagOfficialImageSubTask) Execute() error {
utils.SuccessPrint(`
docker pull nginx:latest
docker image tag nginx:latest ghcr.io/oscarzhou-portainer/nginx:1
docker push ghcr.io/oscarzhou-portainer/nginx:1
-----------------
version: '3'
services:
nginx-container:
image: ghcr.io/oscarzhou-portainer/nginx:1
container_name: "nginx-from-ghcr"
ports:
- "${PORT:-81}:80"
`)
return nil
}
func (task *TagOfficialImageSubTask) String() string {
return "Create Image for Private Registry"
}

View File

@ -19,8 +19,8 @@ func NewBuildDockerImageSubTask(cfg *configs.Config) *BuildDockerImageSubTask {
func (task *BuildDockerImageSubTask) Execute() error {
utils.SuccessPrint(`
yarn build
docker build -t "portainerci/portainer:ee4803" -f build/linux/Dockerfile .
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v "/var/run/docker.sock:/var/run/docker.sock" -v ${env:HOME}/volume/portainer-ee-data-2:/data --add-host=host.docker.internal:host-gateway portainerci/portainer:ee4803
docker build -t "portainerci/portainer-ee:4803" -f build/linux/Dockerfile .
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v "/var/run/docker.sock:/var/run/docker.sock" -v ${env:HOME}/volume/portainer-ee-data-2:/data --add-host=host.docker.internal:host-gateway portainerci/portainer:ee-4803
`)
return nil

View File

@ -18,6 +18,7 @@ func NewMenuSubTask(cfg *configs.Config) *MenuSubTask {
func (task *MenuSubTask) Execute() error {
subTaskItems := []common.Tasker{
NewBuildDockerImageSubTask(task.Config),
NewSwarmDeploySubTask(task.Config),
}
common.ListCommandMenu(subTaskItems, "Which management commands do you want to choose:", false, task.ParentTasks)

View File

@ -0,0 +1,67 @@
package portaineree
import (
"ocl/portainer-devtool/configs"
"ocl/portainer-devtool/tasks/common"
"ocl/portainer-devtool/utils"
)
type SwarmDeploySubTask struct {
common.GeneralTask
}
func NewSwarmDeploySubTask(cfg *configs.Config) *SwarmDeploySubTask {
return &SwarmDeploySubTask{
GeneralTask: *common.NewGeneralTask(cfg),
}
}
func (task *SwarmDeploySubTask) Execute() error {
utils.SuccessPrint(`
version: '3.2'
services:
agent:
image: portainer/agent:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainerci/portainer-ee:4803
command: -H tcp://tasks.agent:9001 --tlsskipverify --log-level ERROR
ports:
- "9443:9443"
- "9000:9000"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/oscar/volume/portainer-ee-data-1:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
--------------------------
docker stack deploy -c docker-compose.yaml portainer
`)
return nil
}
func (task *SwarmDeploySubTask) String() string {
return "Build Docker Image"
}

View File

@ -0,0 +1,35 @@
package tasks
import (
"ocl/portainer-devtool/configs"
"ocl/portainer-devtool/operations/edgestack"
"ocl/portainer-devtool/tasks/common"
)
type ListOperationMenuTask struct {
common.GeneralTask
}
func NewListOperationMenuTask(cfg *configs.Config) *ListOperationMenuTask {
return &ListOperationMenuTask{
GeneralTask: *common.NewGeneralTask(cfg),
}
}
func (task *ListOperationMenuTask) Execute() error {
subTaskItems := []common.Tasker{
edgestack.NewOperationMenuSubTask(task.Config),
}
for _, taskItem := range subTaskItems {
taskItem.SetParentTaskers(subTaskItems)
}
common.ListCommandMenu(subTaskItems, "Which management commands do you want to choose:", false, task.ParentTasks)
return nil
}
func (task *ListOperationMenuTask) String() string {
return "Choose Operations"
}

30
go/tasks/test-env.go Normal file
View File

@ -0,0 +1,30 @@
package tasks
import (
"ocl/portainer-devtool/tasks/common"
"ocl/portainer-devtool/utils"
)
type TestEnvironmentTask struct {
ParentTasks []common.Tasker
}
func NewTestEnvironmentTask() *TestEnvironmentTask {
return &TestEnvironmentTask{}
}
func (task *TestEnvironmentTask) Execute() error {
utils.SuccessPrint(`
https://github.com/portainer/platform/actions
`)
return nil
}
func (task *TestEnvironmentTask) SetParentTaskers(tasks []common.Tasker) {
task.ParentTasks = tasks
}
func (task *TestEnvironmentTask) String() string {
return "Create Testing Environment(VPN)"
}