Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
# boolean to enable app-analytics (defaults to "true")
enableAppAnalytics: false




Remote name of your bucket secret should match the input and output data locations. 









RCLONE_CONFIG_<remote name>_<config parameter>docker login
cat ~/.docker/config.json













RCLONE_CONFIG_DROPBOX_CLIENT_ID: <client_id_value>
RCLONE_CONFIG_DROPBOX_CLIENT_SECRET: <client_secret_value>


NAMESPACE=<name>
kubectl create namespace $NAMESPACE || echo "namespace $NAMESPACE already exists"
kubectl label namespace $NAMESPACE seldon.restricted=false --overwrite=true

name % iris
name=iris AND version=2.0
(name=iris AND version=2.0) OR version=3.0
metrics[metricName] > 1.0 AND tags[tagKey] != someValue<yourSeldonDomain>/seldon-deploy/api/v1alpha1/model/metadata?query=(version=1.0)UNKNOWNXGBOOSTenv:
USERID_CLAIM_KEY: "preferred_username"
SA_ID_CLAIM_KEY: "preferred_username"env:
GROUPS_CLAIM_KEY: "groups""project.seldon.io/<name of component in graph>": "<name of project>"apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
name: mock-deployment
namespace: seldon-deployments
spec:
name: mock-example
predictors:
- name: default
annotations:
project.seldon.io/mock-example-container: project-a
graph:
name: mock-example-container
type: MODEL
componentSpecs:
- spec:
containers:
- name: mock-example-container
image: "seldonio/mock_classifier:1.5.0"apiVersion: mlops.seldon.io/v1alpha1
kind: Model
metadata:
name: iris
namespace: seldon-deployments
annotations:
seldon.io/project: project-a
spec:
storageUri: "gs://seldon-models/mlserver/iris"
requirements:
- sklearn
memory: 100Kirbac:
opa:
enabled: true
nsLabelsAuth:
enabled: falserbac:
opa:
projectAuthEnabled: truerbac:
opa:
permissionManagementAPIDisabled: true{
"role_grants": {
"<group name>": [
{
"resource": "<resource>",
"action": "<action>"
},
// More permissions for this group
],
// More groups
},
"user_grants": {
"<user name>": [
{
"resource": "<resource>",
"action": "<action>"
},
// More permissions for this user
],
// More users
}
}{
"action": "read",
"resource": "namespace/seldon"
}{
"user_grants": {},
"role_grants": {
// ...
}
}{
"user_grants": {
// ...
},
"role_grants": {}
}{
"role_grants": {},
"user_grants": {
"*": [
{
"action": "read",
"resource": "project/default"
},
{
"action": "write",
"resource": "project/default"
}
]
}
}{
"role_grants": {
"data-scientist": [
{
"action": "read",
"resource": "namespace/prod"
},
{
"action": "write",
"resource": "namespace/prod"
}
]
},
"user_grants": {}
}{
"role_grants": {},
"user_grants": {
"alice": [
{
"action": "read",
"resource": "system/iam"
},
{
"action": "write",
"resource": "system/iam"
}
]
}
}{
"role_grants": {
"data_scientist": [
{
"action": "read",
"resource": "project/iris"
},
{
"action": "write",
"resource": "project/iris"
},
{
"action": "read",
"resource": "namespace/seldon"
}
],
"ml_engineer": [
{
"action": "read",
"resource": "project/iris"
},
{
"action": "write",
"resource": "project/iris"
},
{
"action": "read",
"resource": "namespace/seldon"
},
{
"action": "write",
"resource": "namespace/seldon"
}
],
"ops": [
{
"action": "read",
"resource": "namespace/seldon*"
},
{
"action": "read",
"resource": "project/*"
}
]
},
"user_grants": {
"*": [
{
"action": "read",
"resource": "project/default"
},
{
"action": "write",
"resource": "project/default"
},
{
"action": "read",
"resource": "namespace/default"
},
{
"action": "write",
"resource": "namespace/default"
}
],
"alice": [
{
"action": "read",
"resource": "namespace/alice"
},
{
"action": "write",
"resource": "namespace/alice"
}
]
}
}kubectl -n seldon-system create configmap seldon-deploy-policies --from-file=data=policy.json --dry-run=client -o yaml > policy.yaml kubectl apply -f policy.yamlkubectl -n seldon-system rollout restart deployment seldon-deploypolicy_client addPolicy --resource=namespace/seldon --action=write --target_users=alice --target_groups=adminpolicy_client removePolicy --resource=namespace/seldon --action=write --target_users=alice --target_groups=adminpolicy_client synckubectl get cm -n seldon-system seldon-deploy-policies -o jsonpath='{.data.data}' | jqseldon.user.<user name>: "write"
seldon.group.<group name>: "read"seldon.user.alice: "write"
seldon.user.sd_api: "read"
seldon.group.ml_engineer: "read"rbac:
opa:
istioPolicySyncInterval: "5m"rbac:
opa:
enabled: true
projectAuthEnabled: true
permissionManagementAPIDisabled: false
istioPolicySyncInterval: ""
configMap: seldon-deploy-policies
nsLabelsAuth:
enabled: falseRCLONE_CONFIG_<remote name>_<config variable>: <config value>modelUri: <remote>:<bucket name>export MINIONAMESPACE=minio-system
export MINIOUSER=minioadmin
export MINIOPASSWORD=minioadmin
export NAMESPACE=seldon
cat << EOF > seldon-rclone-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: minio-bucket
labels:
secret-type: bucket
seldon-deploy: "true"
type: Opaque
stringData:
RCLONE_CONFIG_S3_TYPE: s3
RCLONE_CONFIG_S3_PROVIDER: minio
RCLONE_CONFIG_S3_ENV_AUTH: "false"
RCLONE_CONFIG_S3_ACCESS_KEY_ID: ${MINIOUSER}
RCLONE_CONFIG_S3_SECRET_ACCESS_KEY: ${MINIOPASSWORD}
RCLONE_CONFIG_S3_ENDPOINT: http://minio.${MINIONAMESPACE}.svc.cluster.local:9000
EOF
kubectl apply -n ${NAMESPACE} -f minio-bucket.yamlapiVersion: v1
kind: Secret
metadata:
name: gs-bucket
labels:
secret-type: bucket
seldon-deploy: "true"
type: Opaque
stringData:
RCLONE_CONFIG_GS_TYPE: google cloud storage
RCLONE_CONFIG_GS_ANONYMOUS: "true"apiVersion: v1
kind: Secret
metadata:
name: s3-bucket
labels:
secret-type: bucket
seldon-deploy: "true"
type: Opaque
stringData:
RCLONE_CONFIG_S3_TYPE: s3
RCLONE_CONFIG_S3_PROVIDER: aws
RCLONE_CONFIG_S3_ENV_AUTH: "false"
RCLONE_CONFIG_S3_ACCESS_KEY_ID: "<your AWS_ACCESS_KEY_ID here>"
RCLONE_CONFIG_S3_SECRET_ACCESS_KEY: "<your AWS_SECRET_ACCESS_KEY here>"apiVersion: v1
kind: Secret
metadata:
name: s3-bucket
labels:
secret-type: bucket
seldon-deploy: "true"
type: Opaque
stringData:
RCLONE_CONFIG_S3_TYPE: s3
RCLONE_CONFIG_S3_PROVIDER: aws
RCLONE_CONFIG_S3_ACCESS_KEY_ID: ""
RCLONE_CONFIG_S3_SECRET_ACCESS_KEY: ""
RCLONE_CONFIG_S3_ENV_AUTH: "true"gcloud iam service-accounts keys create gcloud-application-credentials.json --iam-account [SA-NAME]@[PROJECT-ID].iam.gserviceaccount.comapiVersion: v1
kind: Secret
metadata:
name: gcs-bucket
labels:
secret-type: bucket
seldon-deploy: "true"
type: Opaque
stringData:
RCLONE_CONFIG_GCS_TYPE: google cloud storage
RCLONE_CONFIG_GCS_ANONYMOUS: "false"
RCLONE_CONFIG_GCS_SERVICE_ACCOUNT_CREDENTIALS: '{"type":"service_account", ... <rest of gcloud-application-credentials.json>}'batchjobs:
storageInitializer:
image: gcr.io/kfserving/storage-initializer:v0.4.0export MINIOUSER=minioadmin
export MINIOPASSWORD=minioadmin
export NAMESPACE=seldon
cat << EOF > seldon-kfserving-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: seldon-kfserving-secret
type: Opaque
stringData:
AWS_ACCESS_KEY_ID: ${MINIOUSER}
AWS_SECRET_ACCESS_KEY: ${MINIOPASSWORD}
AWS_ENDPOINT_URL: http://minio.minio-system.svc.cluster.local:9000
USE_SSL: "false"
EOF
kubectl apply -n ${NAMESPACE} -f seldon-kfserving-secret.yaml