kubernetes/kops · error

SCW_SECRET_KEY is required

Error message

SCW_SECRET_KEY is required

What it means

Guard in the Scaleway DNS provider's newClient: the SCW_SECRET_KEY environment variable is empty. Like the access-key check, this is an explicit configuration sentinel — both credentials must be present to construct the scw.Client.

Source

Thrown at dnsprovider/pkg/dnsprovider/providers/scaleway/dns.go:71

// TokenSource implements oauth2.TokenSource
type TokenSource struct {
	AccessToken string
}

// Token returns oauth2.Token
func (t *TokenSource) Token() (*oauth2.Token, error) {
	token := &oauth2.Token{
		AccessToken: t.AccessToken,
	}
	return token, nil
}

func newClient() (*scw.Client, error) {
	if accessKey := os.Getenv("SCW_ACCESS_KEY"); accessKey == "" {
		return nil, fmt.Errorf("SCW_ACCESS_KEY is required")
	}
	if secretKey := os.Getenv("SCW_SECRET_KEY"); secretKey == "" {
		return nil, fmt.Errorf("SCW_SECRET_KEY is required")
	}

	scwClient, err := scw.NewClient(
		scw.WithUserAgent("kubernetes-kops/"+kopsv.Version),
		scw.WithEnv(),
	)
	if err != nil {
		return nil, err
	}

	return scwClient, nil
}

// Interface implements dnsprovider.Interface
type Interface struct {
	domainAPI DomainAPI
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Export SCW_SECRET_KEY with your Scaleway secret key
  2. Use a Scaleway config file with the secret key
  3. Rotate and re-set the key if invalid
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at dnsprovider/pkg/dnsprovider/providers/scaleway/dns.go:71 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/aebeac98b0a9b83c. Report an issue: GitHub.