Compare commits
4 commits
22cefb09d7
...
6c3f8c35c0
Author | SHA1 | Date | |
---|---|---|---|
6c3f8c35c0 | |||
e00347d96f | |||
a82c12fc93 | |||
554d9bccc4 |
7 changed files with 88 additions and 213 deletions
88
.drone.yml
88
.drone.yml
|
@ -1,88 +0,0 @@
|
||||||
---
|
|
||||||
# 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,3 +23,5 @@ go.work
|
||||||
|
|
||||||
# Go build file
|
# Go build file
|
||||||
**/build/
|
**/build/
|
||||||
|
|
||||||
|
.vscode
|
|
@ -1,88 +0,0 @@
|
||||||
---
|
|
||||||
# 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
|
|
57
.woodpecker/deploy.yml
Normal file
57
.woodpecker/deploy.yml
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
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]
|
13
.woodpecker/test.yml
Normal file
13
.woodpecker/test.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
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://drone.faercol.me/PolyculeConnect/polycule-connect)
|
[](https://ci-polycule-connect.chapoline.me/repos/1)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@ 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"
|
||||||
|
@ -57,25 +56,6 @@ 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()
|
||||||
|
|
||||||
|
@ -111,28 +91,27 @@ 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) }
|
||||||
connectors, err := dexConf.Storage.ListConnectors()
|
if err := dexConf.Storage.CreateConnector(storage.Connector{
|
||||||
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",
|
|
||||||
ID: "null",
|
ID: "null",
|
||||||
|
Name: "RefuseAll",
|
||||||
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 {
|
||||||
if err := createConnector(backend, &dexConf, connectorIDs); err != nil {
|
backendConfJson, err := json.Marshal(backend.Config)
|
||||||
|
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