He tratado de evitar, pero realmente no he tenido la necesidad, establecer variables de entorno específicas para un React FE. Pero estoy trabajando en la autenticación social, específicamente con Azure AD, y ahora tengo un caso de uso para ello.
Reconozco que AAD_TENANT_ID y AAD_CLIENT_ID no son exactamente información "secreta" o confidencial y se compilarán en JS, pero estoy tratando de hacer esto por varias razones:
process.env.AAD_TENANT_ID funcionará ya sea dev o prod).Pero no funciona.
El problema con el que me encuentro es que no se puede acceder a las variables env en process.env a pesar de tener lo siguiente:
apiVersion: apps/v1 kind: Deployment metadata: name: admin-v2-deployment-dev namespace: dev spec: replicas: 1 revisionHistoryLimit: 5 selector: matchLabels: component: admin-v2 template: metadata: labels: component: admin-v2 spec: containers: - name: admin-v2 image: admin-v2 ports: - containerPort: 4001 env: - name: AAD_CLIENT_ID valueFrom: secretKeyRef: name: app-dev-secrets key: AAD_CLIENT_ID - name: AAD_TENANT_ID valueFrom: secretKeyRef: name: app-dev-secrets key: AAD_TENANT_ID --- apiVersion: v1 kind: Service metadata: name: admin-v2-cluster-ip-service-dev namespace: dev spec: type: ClusterIP selector: component: admin-v2 ports: - port: 4001 targetPort: 4001 Cuando hago lo siguiente en cualquier parte del código, vuelve undefined :
console.log(process.env.AAD_CLIENT_ID); console.log(process.env.AAD_TENANT_ID);Los valores definitivamente están ahí cuando verifico los secretos en el espacio de nombres y en el propio Pod:
Environment: AAD_CLIENT_ID: <set to the key 'AAD_CLIENT_ID' in secret 'app-dev-secrets'> Optional: false AAD_TENANT_ID: <set to the key 'AAD_TENANT_ID' in secret 'app-dev-secrets'> Optional: falseEntonces, ¿cómo se debe hacer para obtener los secretos de kubectl en React Pods?
Supongo que está utilizando la aplicación create-react- app para React FE. Debe asegurarse de que sus variables de entorno comiencen con REACT_APP_ , de lo contrario, se ignorará dentro de la aplicación. Según la documentación de create-react-app
Note: You must create custom environment variables beginning with REACT_APP_. Any other variables except NODE_ENV will be ignored to avoid accidentally exposing a private key on the machine that could have the same name.Fuente: https://create-react-app.dev/docs/adding-custom-environment-variables/