Skip to content

Commit 5d6c4c6

Browse files
committed
Add predictable Frontend token for external readonly authentication
1 parent bb2cb0f commit 5d6c4c6

3 files changed

Lines changed: 9 additions & 7 deletions

File tree

controllers/cloud.redhat.com/providers/featureflags/localfeatureflags.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,9 @@ func (ff *localFeatureFlagsProvider) EnvProvide() error {
220220

221221
func createDefaultFFSecMap() map[string]string {
222222
return map[string]string{
223-
"adminAccessToken": "*:*." + utils.RandHexString(32),
224-
"clientAccessToken": "default:development." + utils.RandHexString(32),
223+
"adminAccessToken": "*:*." + utils.RandHexString(32),
224+
"clientAccessToken": "default:development." + utils.RandHexString(32),
225+
"frontendAccessToken": "default:*.proxy-123",
225226
}
226227
}
227228

@@ -272,7 +273,7 @@ func makeLocalFFEdgeIngress(ff *localFeatureFlagsProvider) error {
272273
IngressRuleValue: networking.IngressRuleValue{
273274
HTTP: &networking.HTTPIngressRuleValue{
274275
Paths: []networking.HTTPIngressPath{{
275-
Path: "/api/client/features",
276+
Path: "/api/frontend",
276277
PathType: &prefixPathType,
277278
Backend: networking.IngressBackend{
278279
Service: &networking.IngressServiceBackend{
@@ -329,6 +330,7 @@ func makeLocalFeatureFlags(_ *crd.ClowdEnvironment, o obj.ClowdObject, objMap pr
329330
envVars = provutils.AppendEnvVarsFromSecret(envVars, nn.Name,
330331
provutils.NewSecretEnvVar("INIT_CLIENT_API_TOKENS", "clientAccessToken"),
331332
provutils.NewSecretEnvVar("INIT_ADMIN_API_TOKENS", "adminAccessToken"),
333+
provutils.NewSecretEnvVar("INIT_FRONTEND_API_TOKENS", "frontendAccessToken"),
332334
)
333335

334336
ports := []core.ContainerPort{{

tests/kuttl/test-ff-local/01-assert.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ spec:
7070
- http:
7171
paths:
7272
- pathType: Prefix
73-
path: /api/client/features
73+
path: /api/frontend
7474
backend:
7575
service:
7676
name: test-ff-local-featureflags-edge

tests/kuttl/test-ff-local/test_feature_flags.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ get_request_ingress() {
1616

1717
get_request_edge() {
1818

19-
local TOKEN="$1"
20-
local ENDPOINT="$2"
19+
local TOKEN="default:*.proxy-123"
20+
local ENDPOINT="$1"
2121

2222
kubectl exec -n test-ff-local "$FEATURE_FLAGS_POD" -- wget -q -O- \
2323
--header "Authorization: $TOKEN" "test-ff-local-featureflags-edge:3063${ENDPOINT}"
@@ -84,7 +84,7 @@ fi
8484
echo "Waiting for edge to sync"
8585
sleep 6
8686

87-
if ! get_request_edge "$CLIENT_TOKEN" "/api/client/features/$FEATURE_TOGGLE_NAME"; then
87+
if ! get_request_edge "/api/frontend/$FEATURE_TOGGLE_NAME"; then
8888
echo "Feature toggle '$FEATURE_TOGGLE_NAME' should be available through edge"
8989
exit 1
9090
fi

0 commit comments

Comments
 (0)