Skip to content

Commit a572b5f

Browse files
committed
backend: cmd: pkg: Add oidc autologin flag and config
1 parent 4430b47 commit a572b5f

File tree

4 files changed

+11
-2
lines changed

4 files changed

+11
-2
lines changed

backend/cmd/headlamp.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ import (
7272

7373
type HeadlampConfig struct {
7474
*headlampcfg.HeadlampCFG
75+
OidcAutoLogin bool
7576
oidcClientID string
7677
oidcValidatorClientID string
7778
oidcClientSecret string
@@ -119,6 +120,7 @@ const (
119120
type clientConfig struct {
120121
Clusters []Cluster `json:"clusters"`
121122
IsDynamicClusterEnabled bool `json:"isDynamicClusterEnabled"`
123+
OidcAutoLogin bool `json:"oidcAutoLogin"`
122124
}
123125

124126
type OauthConfig struct {
@@ -1769,7 +1771,11 @@ func parseClusterFromKubeConfig(kubeConfigs []string) ([]Cluster, []error) {
17691771
func (c *HeadlampConfig) getConfig(w http.ResponseWriter, r *http.Request) {
17701772
w.Header().Set("Content-Type", "application/json")
17711773

1772-
clientConfig := clientConfig{c.getClusters(), c.EnableDynamicClusters}
1774+
clientConfig := clientConfig{
1775+
c.getClusters(),
1776+
c.EnableDynamicClusters,
1777+
c.OidcAutoLogin,
1778+
}
17731779

17741780
if err := json.NewEncoder(w).Encode(&clientConfig); err != nil {
17751781
logger.Log(logger.LevelError, nil, err, "encoding config")

backend/cmd/server.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ func createHeadlampConfig(conf *config.Config) *HeadlampConfig {
125125

126126
headlampConfig := &HeadlampConfig{
127127
HeadlampCFG: buildHeadlampCFG(conf, kubeConfigStore),
128+
OidcAutoLogin: conf.OidcAutoLogin,
128129
oidcClientID: conf.OidcClientID,
129130
oidcValidatorClientID: conf.OidcValidatorClientID,
130131
oidcClientSecret: conf.OidcClientSecret,

backend/cmd/stateless.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ func (c *HeadlampConfig) parseKubeConfig(w http.ResponseWriter, r *http.Request)
178178
return
179179
}
180180

181-
clientConfig := clientConfig{contexts, c.EnableDynamicClusters}
181+
clientConfig := clientConfig{contexts, c.EnableDynamicClusters, c.OidcAutoLogin}
182182

183183
if err := json.NewEncoder(w).Encode(&clientConfig); err != nil {
184184
logger.Log(logger.LevelError, nil, err, "encoding config")

backend/pkg/config/config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ type Config struct {
5555
UserPluginsDir string `koanf:"user-plugins-dir"`
5656
BaseURL string `koanf:"base-url"`
5757
ProxyURLs string `koanf:"proxy-urls"`
58+
OidcAutoLogin bool `koanf:"oidc-auto-login"`
5859
OidcClientID string `koanf:"oidc-client-id"`
5960
OidcValidatorClientID string `koanf:"oidc-validator-client-id"`
6061
OidcClientSecret string `koanf:"oidc-client-secret"`
@@ -437,6 +438,7 @@ func addGeneralFlags(f *flag.FlagSet) {
437438
}
438439

439440
func addOIDCFlags(f *flag.FlagSet) {
441+
f.Bool("oidc-auto-login", false, "Automatic Redirect to OIDC provider")
440442
f.String("oidc-client-id", "", "ClientID for OIDC")
441443
f.String("oidc-client-secret", "", "ClientSecret for OIDC")
442444
f.String("oidc-validator-client-id", "", "Override ClientID for OIDC during validation")

0 commit comments

Comments
 (0)