Compare commits
1 commit
6c3f8c35c0
...
22cefb09d7
Author | SHA1 | Date | |
---|---|---|---|
22cefb09d7 |
7 changed files with 213 additions and 88 deletions
88
.drone.yml
Normal file
88
.drone.yml
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
---
|
||||||
|
# Test building the code and docker image
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: test-build
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: go-test
|
||||||
|
image: golang
|
||||||
|
commands:
|
||||||
|
- make -C polyculeconnect test
|
||||||
|
depends_on:
|
||||||
|
|
||||||
|
- name: go-build
|
||||||
|
image: golang
|
||||||
|
commands:
|
||||||
|
- make -C polyculeconnect build
|
||||||
|
depends_on:
|
||||||
|
|
||||||
|
- name: docker-build-only
|
||||||
|
image: thegeeklab/drone-docker-buildx
|
||||||
|
privileged: true
|
||||||
|
settings:
|
||||||
|
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
||||||
|
tags: latest
|
||||||
|
dry_run: true
|
||||||
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
|
# - linux/arm64
|
||||||
|
depends_on:
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
exclude:
|
||||||
|
- main
|
||||||
|
|
||||||
|
- name: docker-build-push
|
||||||
|
image: thegeeklab/drone-docker-buildx
|
||||||
|
privileged: true
|
||||||
|
settings:
|
||||||
|
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
||||||
|
registry: git.faercol.me
|
||||||
|
tags: latest
|
||||||
|
username:
|
||||||
|
from_secret: GIT_USERNAME
|
||||||
|
password:
|
||||||
|
from_secret: GIT_PASSWORD
|
||||||
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
|
# - linux/arm64
|
||||||
|
depends_on:
|
||||||
|
- go-test
|
||||||
|
- go-build
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- tag
|
||||||
|
|
||||||
|
---
|
||||||
|
# On a tag, only build the related docker image
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: tag-release
|
||||||
|
depends_on:
|
||||||
|
- test-build
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: docker-push-tag
|
||||||
|
image: thegeeklab/drone-docker-buildx
|
||||||
|
privileged: true
|
||||||
|
settings:
|
||||||
|
registry: git.faercol.me
|
||||||
|
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
||||||
|
auto_tag: true
|
||||||
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
|
# - linux/arm64
|
||||||
|
username:
|
||||||
|
from_secret: GIT_USERNAME
|
||||||
|
password:
|
||||||
|
from_secret: GIT_PASSWORD
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -23,5 +23,3 @@ go.work
|
||||||
|
|
||||||
# Go build file
|
# Go build file
|
||||||
**/build/
|
**/build/
|
||||||
|
|
||||||
.vscode
|
|
88
.woodpecker.yml
Normal file
88
.woodpecker.yml
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
---
|
||||||
|
# Test building the code and docker image
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: test-build
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: go-test
|
||||||
|
image: golang
|
||||||
|
commands:
|
||||||
|
- make -C polyculeconnect test
|
||||||
|
depends_on:
|
||||||
|
|
||||||
|
- name: go-build
|
||||||
|
image: golang
|
||||||
|
commands:
|
||||||
|
- make -C polyculeconnect build
|
||||||
|
depends_on:
|
||||||
|
|
||||||
|
- name: docker-build-only
|
||||||
|
image: thegeeklab/drone-docker-buildx
|
||||||
|
privileged: true
|
||||||
|
settings:
|
||||||
|
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
||||||
|
tags: latest
|
||||||
|
dry_run: true
|
||||||
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
|
# - linux/arm64
|
||||||
|
depends_on:
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
exclude:
|
||||||
|
- main
|
||||||
|
|
||||||
|
- name: docker-build-push
|
||||||
|
image: thegeeklab/drone-docker-buildx
|
||||||
|
privileged: true
|
||||||
|
settings:
|
||||||
|
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
||||||
|
registry: git.faercol.me
|
||||||
|
tags: latest
|
||||||
|
username:
|
||||||
|
from_secret: GIT_USERNAME
|
||||||
|
password:
|
||||||
|
from_secret: GIT_PASSWORD
|
||||||
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
|
# - linux/arm64
|
||||||
|
depends_on:
|
||||||
|
- go-test
|
||||||
|
- go-build
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
- tag
|
||||||
|
|
||||||
|
---
|
||||||
|
# On a tag, only build the related docker image
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: tag-release
|
||||||
|
depends_on:
|
||||||
|
- test-build
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: docker-push-tag
|
||||||
|
image: thegeeklab/drone-docker-buildx
|
||||||
|
privileged: true
|
||||||
|
settings:
|
||||||
|
registry: git.faercol.me
|
||||||
|
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
||||||
|
auto_tag: true
|
||||||
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
|
# - linux/arm64
|
||||||
|
username:
|
||||||
|
from_secret: GIT_USERNAME
|
||||||
|
password:
|
||||||
|
from_secret: GIT_PASSWORD
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
|
@ -1,57 +0,0 @@
|
||||||
steps:
|
|
||||||
docker-build-only:
|
|
||||||
image: woodpeckerci/plugin-docker-buildx
|
|
||||||
privileged: true
|
|
||||||
settings:
|
|
||||||
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
|
||||||
tags: latest
|
|
||||||
dry_run: true
|
|
||||||
platforms:
|
|
||||||
- linux/amd64
|
|
||||||
# - linux/arm64
|
|
||||||
when:
|
|
||||||
- event: pull_request
|
|
||||||
- event: push
|
|
||||||
branch:
|
|
||||||
exclude: [main]
|
|
||||||
|
|
||||||
docker-build-push:
|
|
||||||
image: woodpeckerci/plugin-docker-buildx
|
|
||||||
privileged: true
|
|
||||||
settings:
|
|
||||||
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
|
||||||
registry: git.faercol.me
|
|
||||||
tags: latest
|
|
||||||
username:
|
|
||||||
from_secret: git_username
|
|
||||||
password:
|
|
||||||
from_secret: git_password
|
|
||||||
platforms:
|
|
||||||
- linux/amd64
|
|
||||||
# - linux/arm64
|
|
||||||
when:
|
|
||||||
- event: push
|
|
||||||
branch: main
|
|
||||||
|
|
||||||
docker-push-tag:
|
|
||||||
image: woodpeckerci/plugin-docker-buildx
|
|
||||||
privileged: true
|
|
||||||
settings:
|
|
||||||
registry: git.faercol.me
|
|
||||||
repo: git.faercol.me/polyculeconnect/polyculeconnect
|
|
||||||
auto_tag: true
|
|
||||||
platforms:
|
|
||||||
- linux/amd64
|
|
||||||
# - linux/arm64
|
|
||||||
username:
|
|
||||||
from_secret: git_username
|
|
||||||
password:
|
|
||||||
from_secret: git_password
|
|
||||||
when:
|
|
||||||
- event: tag
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- test
|
|
||||||
|
|
||||||
when:
|
|
||||||
event: [push, tag]
|
|
|
@ -1,13 +0,0 @@
|
||||||
steps:
|
|
||||||
go-test:
|
|
||||||
image: golang
|
|
||||||
commands:
|
|
||||||
- make -C polyculeconnect test
|
|
||||||
|
|
||||||
go-build:
|
|
||||||
image: golang
|
|
||||||
commands:
|
|
||||||
- make -C polyculeconnect build
|
|
||||||
|
|
||||||
when:
|
|
||||||
event: [push, tag]
|
|
|
@ -1,6 +1,6 @@
|
||||||
# PolyculeConnect
|
# PolyculeConnect
|
||||||
|
|
||||||
[](https://ci-polycule-connect.chapoline.me/repos/1)
|
[](https://drone.faercol.me/PolyculeConnect/polycule-connect)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/connector"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/connector"
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/logger"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/logger"
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/server"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/server"
|
||||||
|
"github.com/dexidp/dex/connector/oidc"
|
||||||
dex_server "github.com/dexidp/dex/server"
|
dex_server "github.com/dexidp/dex/server"
|
||||||
"github.com/dexidp/dex/storage"
|
"github.com/dexidp/dex/storage"
|
||||||
"github.com/dexidp/dex/storage/memory"
|
"github.com/dexidp/dex/storage/memory"
|
||||||
|
@ -56,6 +57,25 @@ func initStorage(conf *config.AppConfig) (storage.Storage, error) {
|
||||||
return storageType, nil
|
return storageType, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func createConnector(backend *config.BackendConfig, dexConf *dex_server.Config, connectorIDs []string) error {
|
||||||
|
for _, id := range connectorIDs {
|
||||||
|
if id == backend.ID {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
backendConfJson, err := json.Marshal(backend.Config)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to serialize oidc config for backend %q: %s", backend.Name, err.Error())
|
||||||
|
}
|
||||||
|
return dexConf.Storage.CreateConnector(storage.Connector{
|
||||||
|
ID: backend.ID,
|
||||||
|
Name: backend.Name,
|
||||||
|
Type: string(backend.Type),
|
||||||
|
Config: backendConfJson,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
args := parseArgs()
|
args := parseArgs()
|
||||||
|
|
||||||
|
@ -91,27 +111,28 @@ func main() {
|
||||||
logger.L.Info("Initializing authentication backends")
|
logger.L.Info("Initializing authentication backends")
|
||||||
|
|
||||||
dex_server.ConnectorsConfig["refuseAll"] = func() dex_server.ConnectorConfig { return new(connector.RefuseAllConfig) }
|
dex_server.ConnectorsConfig["refuseAll"] = func() dex_server.ConnectorConfig { return new(connector.RefuseAllConfig) }
|
||||||
if err := dexConf.Storage.CreateConnector(storage.Connector{
|
connectors, err := dexConf.Storage.ListConnectors()
|
||||||
ID: "null",
|
if err != nil {
|
||||||
|
logger.L.Fatalf("Failed to get existing connectors: %s", err.Error())
|
||||||
|
}
|
||||||
|
var connectorIDs []string
|
||||||
|
for _, conn := range connectors {
|
||||||
|
connectorIDs = append(connectorIDs, conn.ID)
|
||||||
|
}
|
||||||
|
|
||||||
|
backend := config.BackendConfig{
|
||||||
|
Config: &oidc.Config{},
|
||||||
Name: "RefuseAll",
|
Name: "RefuseAll",
|
||||||
|
ID: "null",
|
||||||
Type: "refuseAll",
|
Type: "refuseAll",
|
||||||
Config: nil,
|
}
|
||||||
}); err != nil {
|
|
||||||
|
if err := createConnector(&backend, &dexConf, connectorIDs); err != nil {
|
||||||
logger.L.Errorf("Failed to add connector for backend RefuseAll to stage: %s", err.Error())
|
logger.L.Errorf("Failed to add connector for backend RefuseAll to stage: %s", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, backend := range conf.OpenConnectConfig.BackendConfigs {
|
for _, backend := range conf.OpenConnectConfig.BackendConfigs {
|
||||||
backendConfJson, err := json.Marshal(backend.Config)
|
if err := createConnector(backend, &dexConf, connectorIDs); err != nil {
|
||||||
if err != nil {
|
|
||||||
logger.L.Errorf("Failed to serialize oidc config for backend %q: %s", backend.Name, err.Error())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if err := dexConf.Storage.CreateConnector(storage.Connector{
|
|
||||||
ID: backend.ID,
|
|
||||||
Name: backend.Name,
|
|
||||||
Type: string(backend.Type),
|
|
||||||
Config: backendConfJson,
|
|
||||||
}); err != nil {
|
|
||||||
logger.L.Errorf("Failed to add connector for backend %q to stage: %s", backend.Name, err.Error())
|
logger.L.Errorf("Failed to add connector for backend %q to stage: %s", backend.Name, err.Error())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue