Tracebloc Client is a Kubernetes-based application that runs experiments and communicates results to the Tracebloc backend. It's designed to handle distributed machine learning workloads efficiently and securely.
- Kubernetes
- Helm 3.x
- Azure Service Bus (AmqpOverWebsocket)
- Docker
- Persistent Volume Storage
kubectlinstalled and configuredHelm 3.xinstalled- Access to a Kubernetes cluster
- One-way communication with Tracebloc backend
- Port 443 open for Azure Service Bus (AmqpOverWebsocket)
- Secure metric and weight file transmission
- RAM: 50 GB (minimum)
- CPU: 20 cores (minimum)
- Persistent volumes for:
- Training data
- Models
- Weight files
-
Docker Registry Access:
- Username
- Password
-
Client Authentication:
- Client ID
- Username
- Password
- Ensure all prerequisites are met
- Configure your credentials
- Follow our detailed deployment guide at: Create Your Client
Checks for common issues, best practices, and potential problems:
helm lint eks/What it checks:
- Chart structure and metadata
- Template syntax
- Values file structure
- Best practices compliance
Renders all templates with your values to check for syntax errors:
helm template eks eks/ --namespace test-namespaceWith debug output:
helm template eks eks/ --namespace test-namespace --debugWhat it checks:
- Template syntax errors
- Missing required values
- Incorrect template functions
- YAML formatting issues
Validates that the rendered YAML is valid Kubernetes:
helm template eks eks/ --namespace test-namespace | kubectl apply --dry-run=client -f -What it checks:
- Valid Kubernetes API versions
- Correct resource definitions
- Required fields are present
Simulates an installation without actually deploying:
helm install test-release eks/ --namespace test-namespace --dry-run --debugWhat it checks:
- All resources would be created correctly
- Dependencies are resolved
- Values are properly substituted
Creates a chart package to verify it can be packaged:
helm package eks/What it checks:
- Chart can be packaged for distribution
- All required files are included
- Chart metadata is correct
Search for placeholder values that need to be replaced:
helm template eks eks/ --namespace test-namespace | grep -E "<.*>"Or check values.yaml directly:
grep -E "<.*>" eks/values.yaml- No placeholder values - Replace all
<PLACEHOLDER>,<NAMESPACE>, etc. - All required values are set - Check values.yaml for any empty required fields
- Template syntax is correct - All
{{ }}blocks are properly closed - Resource names are unique - No conflicts with existing resources
- RBAC permissions are correct - Service accounts have necessary permissions
- Image tags are specified - No
latesttags in production - Resource limits are set - Containers have appropriate resource requests/limits
- Secrets are handled properly - No hardcoded secrets in templates
- Namespace is configurable - Uses
.Release.Namespaceor.Values.namespace - Labels and selectors match - All resources have consistent labeling
-
helm lint eks/passes without errors -
helm template eks eks/renders without errors - All placeholder values in values.yaml are replaced or documented
- Kubernetes manifest validation passes
- Chart packages successfully
- All template files are properly formatted
- RBAC resources are correctly configured
- Service accounts reference correct ClusterRoles
- Image pull secrets are configured
- Resource requests/limits are set appropriately
- Documentation is updated (if applicable)
Test your chart with different value files:
# Test with custom values
helm template eks eks/ -f values-16-dev.yaml --namespace dev
# Test with multiple value files
helm template eks eks/ -f values.yaml -f values-16-dev.yaml --namespace devhelm template eks eks/ --namespace test-namespace | \
kubectl apply --dry-run=server -f -helm template eks eks/ --namespace test-namespace | \
kubectl convert --local -f - 2>&1 | grep -i deprecatedhelm template eks eks/ --namespace test-namespace | \
kubectl get -f - --dry-run=client -o name- Check for unclosed
{{ }}blocks - Verify all referenced values exist in values.yaml
- Ensure proper indentation in templates
- Review warnings and fix critical issues
- Some warnings may be acceptable (document why)
- Check API versions are correct for your cluster
- Verify required fields are present
- Ensure resource names follow Kubernetes naming conventions
This project is licensed under the MIT License - see the LICENSE file for details.
For additional support or questions, please refer to our documentation or contact the Tracebloc support team.