Skip to content

Commit

Permalink
Read function namespace from env variable or service account
Browse files Browse the repository at this point in the history
Read the function namespace from the OPENFAAS_NAMESPACE env variable.
Fallback to getting the nemsapce from the service account if the
variable is not present.

Required setting the namespace when running functions locally with jwt_auth.

Signed-off-by: Han Verstraete (OpenFaaS Ltd) <[email protected]>
  • Loading branch information
welteki committed May 16, 2024
1 parent a57347f commit 7645ca4
Showing 1 changed file with 23 additions and 17 deletions.
40 changes: 23 additions & 17 deletions executor/jwt_authenticator.go
Original file line number Diff line number Diff line change
Expand Up @@ -199,23 +199,6 @@ type OpenIDConfiguration struct {
JWKSURI string `json:"jwks_uri"`
}

func getFnName() (string, error) {
name, ok := os.LookupEnv("OPENFAAS_NAME")
if !ok || len(name) == 0 {
return "", fmt.Errorf("env variable 'OPENFAAS_NAME' not set")
}

return name, nil
}

func getFnNamespace() (string, error) {
nsVal, err := os.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
if err != nil {
return "", err
}
return string(nsVal), nil
}

type FunctionClaims struct {
jwt.RegisteredClaims

Expand Down Expand Up @@ -282,3 +265,26 @@ func wildCardToRegexp(pattern string) string {
}
return result.String()
}

func getFnName() (string, error) {
name, ok := os.LookupEnv("OPENFAAS_NAME")
if !ok || len(name) == 0 {
return "", fmt.Errorf("env variable 'OPENFAAS_NAME' not set")
}

return name, nil
}

// getFnNamespace gets the namespace name from the env variable OPENFAAS_NAMESPACE
// or reads it from the service account if the env variable is not present
func getFnNamespace() (string, error) {
if namespace, ok := os.LookupEnv("OPENFAAS_NAMESPACE"); ok {
return namespace, nil
}

nsVal, err := os.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
if err != nil {
return "", err
}
return string(nsVal), nil
}

0 comments on commit 7645ca4

Please sign in to comment.