I'm trying to get OpenID working with ECK, but its not finding the client_secret key/value in the keystore.
I have verified that it (seems to be) populating the keystore. If I set up elasticsearch without the OpenID realm:
apiVersion: elasticsearch.k8s.elastic.co/v1alpha1
kind: Elasticsearch
metadata:
name: elasticsearch-poc
spec:
version: 7.2.0
secureSettings:
secretName: azure-openid-secret
nodes:
- nodeCount: 1
config:
node.master: true
node.data: true
node.ingest: true
xpack.security.authc.token.enabled: true
volumeClaimTemplates:
- metadata:
name: elasticdata
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
storageClassName: default
You can see the keystore gets the appropriate data:
[root@elasticsearch-poc-es-5kvf75d48q elasticsearch]# cd /mnt/elastic/secure-settings/
[root@elasticsearch-poc-es-5kvf75d48q secure-settings]# ls -al
total 4
drwxrwxrwt 3 root root 100 Jul 24 20:18 .
drwxr-xr-x 9 root root 4096 Jul 24 20:20 ..
drwxr-xr-x 2 root root 60 Jul 24 20:18 ..2019_07_24_20_18_31.193342258
lrwxrwxrwx 1 root root 31 Jul 24 20:18 ..data -> ..2019_07_24_20_18_31.193342258
lrwxrwxrwx 1 root root 62 Jul 24 20:18 xpack.security.authc.realms.oidc.oidc1.rp.client_secret -> ..data/xpack.security.authc.realms.oidc.oidc1.rp.client_secret
[root@elasticsearch-poc-es-5kvf75d48q config]# elasticsearch-keystore list
keystore.seed
xpack.security.authc.realms.oidc.oidc1.rp.client_secret
(I looked in the xpack.security.authc.realms.oidc.oidc1.rp.client_secret file, and it has the correct data.)
Now, if I add the OpenID stuff into nodes config (just under the xpack.security.authc.token.enabled line):
xpack.security.authc.realms.oidc.oidc1:
order: 10
rp.client_id: "REDACTED"
rp.response_type: "code"
rp.redirect_uri: "REDACTED"
op.issuer: "REDACTED"
op.authorization_endpoint: "REDACTED"
op.token_endpoint: "REDACTED"
op.userinfo_endpoint: "REDACTED"
op.endsession_endpoint: "REDACTED"
op.jwkset_path: "REDACTED"
rp.post_logout_redirect_uri: "REDACTED"
claims.principal: sub
And kubectl apply the changes, the new pod spins up, only to give me a stacktrace, the relevant line being:
"Caused by: org.elasticsearch.common.settings.SettingsException: The configuration setting [xpack.security.authc.realms.oidc.oidc1.rp.client_secret] is required",
So, what am I missing that it can't find what is obviously there?