You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/core-services/container-orchestration-provider-usage.md
+33-28Lines changed: 33 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -147,7 +147,7 @@ The result should be a single line with all the existing options plus the new on
147
147
148
148
## Container Identity Integration
149
149
150
-
The Container Identity Integration feature allows containers to securely authenticate and interact with Kura's REST APIs using temporary credentials. When enabled, Kura automatically manages authentication tokens for containers, eliminating the need for manual credential configuration.
150
+
The Container Identity Integration feature allows containers to securely authenticate and interact with Kura's REST APIs using temporary credentials. When enabled, Kura automatically provisions a temporary identity and provides password-based credentials to the container, eliminating the need for manual credential configuration.
151
151
152
152
### Overview
153
153
@@ -157,17 +157,18 @@ When Identity Integration is enabled for a container instance, Kura performs the
157
157
158
158
2. **Assigns Permissions**: The temporary identity is granted the permissions specified in the **Container Permissions** field.
159
159
160
-
3. **Provides Credentials**: The container receives two environment variables:
161
-
- `KURA_IDENTITY_TOKEN`: The authentication token for accessing Kura's REST APIs
160
+
3. **Provides Credentials**: The container receives the following environment variables:
161
+
- `KURA_IDENTITY_NAME`: The temporary identity name for accessing Kura's REST APIs
162
+
- `KURA_IDENTITY_PASSWORD`: The temporary password for accessing Kura's REST APIs
162
163
- `KURA_REST_BASE_URL`: The complete base URL for Kura's REST API endpoints (e.g., `http://172.17.0.1:8080/services` or `https://172.17.0.1:443/services`)
163
164
164
-
4. **Automatic Cleanup**: When the container stops or is deleted, Kura automatically removes the temporary identity and invalidates the token.
165
+
4. **Automatic Cleanup**: When the container stops or is deleted, Kura automatically removes the temporary identity and invalidates its credentials.
165
166
166
167
### Features
167
168
168
169
- **Zero Configuration**: Containers automatically receive the correct REST API URL based on the gateway's HTTPS configuration and network mode.
169
170
- **Network-Aware**: The REST base URL is automatically adjusted based on the container's networking mode (bridge, host, etc.).
170
-
- **Secure**: Tokens are temporary and automatically invalidated when containers stop.
171
+
- **Secure**: Credentials are temporary and automatically invalidated when containers stop.
171
172
- **Non-Persistent**: Temporary identities exist only in memory and are never persisted to disk.
172
173
- **Permission-Based**: Fine-grained access control using Kura's existing permission system.
173
174
@@ -179,6 +180,8 @@ To enable Identity Integration for a container:
179
180
2. Specify the required permissions in **Container Permissions** field (comma-separated)
180
181
3. Apply the configuration
181
182
183
+
To use the temporary credentials with REST APIs, ensure **Basic Authentication Enabled** is set to `true` in the **RestService** configuration.
184
+
182
185
The framework will create the temporary identity when the container starts and clean it up when the container stops.
1. **Principle of Least Privilege**: Only grant permissions that are absolutely necessary for the container's functionality.
408
412
409
-
2. **Validate Environment Variables**: Always check that `KURA_IDENTITY_TOKEN` and `KURA_REST_BASE_URL` are present before making API calls.
413
+
2. **Validate Environment Variables**: Always check that `KURA_IDENTITY_NAME`, `KURA_IDENTITY_PASSWORD`, and `KURA_REST_BASE_URL` are present before making API calls.
410
414
411
-
3. **Handle Token Lifecycle**: Be prepared for the token to become invalid when the container is stopping or restarting.
415
+
3. **Handle Credential Lifecycle**: Be prepared forcredentials to become invalid when the container is stopping or restarting.
412
416
413
417
4. **Error Handling**: Implement proper error handling for API calls, as permissions may be denied if the container doesn't have the required permission.
414
418
@@ -426,10 +430,11 @@ while True:
426
430
- Ensure the container is reading the environment variables correctly
427
431
- Check container logs for authentication errors
428
432
429
-
**Token authentication fails:**
430
-
- Verify the token is being sent in the `Authorization` header as `Bearer <token>`
433
+
**Basic authentication fails:**
434
+
- Verify the request includes valid Basic credentials (`KURA_IDENTITY_NAME` / `KURA_IDENTITY_PASSWORD`)
431
435
- Check that the temporary identity was created successfully in Kura logs
432
436
- Ensure the container is using the correct REST base URL
437
+
- Verify **Basic Authentication Enabled** is set to `true`in**RestService**
433
438
434
439
**Permission denied errors:**
435
440
- Verify the permission name is correct (case-sensitive)
@@ -447,4 +452,4 @@ To stop the container without deleting the component, set the **Enabled** field
447
452
448
453
## Container Management Dashboard
449
454
450
-
The Container Orchestration service also provides the user with an intuitive container dashboard. This dashboard shows all containers running on a gateway, including containers created with the framework and those created manually through the command-line interface. To utilize this dashboard the `org.eclipse.container.orchestration.provider` (ContainerOrchestrationService) must be enabled, and the dashboard can be opened by navigating to Device > Containers.
455
+
The Container Orchestration service also provides the user with an intuitive container dashboard. This dashboard shows all containers running on a gateway, including containers created with the framework and those created manually through the command-line interface. To utilize this dashboard the `org.eclipse.container.orchestration.provider` (ContainerOrchestrationService) must be enabled, and the dashboard can be opened by navigating to Device > Containers.
0 commit comments