{"action":"created","issue":{"url":"https://api.github.com/repos/kubeflow/kubeflow/issues/2067","repository_url":"https://api.github.com/repos/kubeflow/kubeflow","labels_url":"https://api.github.com/repos/kubeflow/kubeflow/issues/2067/labels{/name}","comments_url":"https://api.github.com/repos/kubeflow/kubeflow/issues/2067/comments","events_url":"https://api.github.com/repos/kubeflow/kubeflow/issues/2067/events","html_url":"https://github.com/kubeflow/kubeflow/pull/2067","id":389175176,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM3MjIzMjk4","number":2067,"title":"Enforce use string type param for S3_USE_HTTPS and S3_VERIFY_SSL","user":{"login":"Jeffwan","id":4739316,"node_id":"MDQ6VXNlcjQ3MzkzMTY=","avatar_url":"https://avatars2.githubusercontent.com/u/4739316?v=4","gravatar_id":"","url":"https://api.github.com/users/Jeffwan","html_url":"https://github.com/Jeffwan","followers_url":"https://api.github.com/users/Jeffwan/followers","following_url":"https://api.github.com/users/Jeffwan/following{/other_user}","gists_url":"https://api.github.com/users/Jeffwan/gists{/gist_id}","starred_url":"https://api.github.com/users/Jeffwan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jeffwan/subscriptions","organizations_url":"https://api.github.com/users/Jeffwan/orgs","repos_url":"https://api.github.com/users/Jeffwan/repos","events_url":"https://api.github.com/users/Jeffwan/events{/privacy}","received_events_url":"https://api.github.com/users/Jeffwan/received_events","type":"User","site_admin":false},"labels":[{"id":852268762,"node_id":"MDU6TGFiZWw4NTIyNjg3NjI=","url":"https://api.github.com/repos/kubeflow/kubeflow/labels/approved","name":"approved","color":"03db12","default":false},{"id":1016516455,"node_id":"MDU6TGFiZWwxMDE2NTE2NDU1","url":"https://api.github.com/repos/kubeflow/kubeflow/labels/cla:%20yes","name":"cla: yes","color":"ededed","default":false},{"id":842377274,"node_id":"MDU6TGFiZWw4NDIzNzcyNzQ=","url":"https://api.github.com/repos/kubeflow/kubeflow/labels/lgtm","name":"lgtm","color":"2efca4","default":false},{"id":796371394,"node_id":"MDU6TGFiZWw3OTYzNzEzOTQ=","url":"https://api.github.com/repos/kubeflow/kubeflow/labels/needs-ok-to-test","name":"needs-ok-to-test","color":"fbca04","default":false},{"id":796413694,"node_id":"MDU6TGFiZWw3OTY0MTM2OTQ=","url":"https://api.github.com/repos/kubeflow/kubeflow/labels/size/XS","name":"size/XS","color":"0e8a16","default":false}],"state":"open","locked":false,"assignee":{"login":"jlewi","id":777219,"node_id":"MDQ6VXNlcjc3NzIxOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/777219?v=4","gravatar_id":"","url":"https://api.github.com/users/jlewi","html_url":"https://github.com/jlewi","followers_url":"https://api.github.com/users/jlewi/followers","following_url":"https://api.github.com/users/jlewi/following{/other_user}","gists_url":"https://api.github.com/users/jlewi/gists{/gist_id}","starred_url":"https://api.github.com/users/jlewi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlewi/subscriptions","organizations_url":"https://api.github.com/users/jlewi/orgs","repos_url":"https://api.github.com/users/jlewi/repos","events_url":"https://api.github.com/users/jlewi/events{/privacy}","received_events_url":"https://api.github.com/users/jlewi/received_events","type":"User","site_admin":false},"assignees":[{"login":"jlewi","id":777219,"node_id":"MDQ6VXNlcjc3NzIxOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/777219?v=4","gravatar_id":"","url":"https://api.github.com/users/jlewi","html_url":"https://github.com/jlewi","followers_url":"https://api.github.com/users/jlewi/followers","following_url":"https://api.github.com/users/jlewi/following{/other_user}","gists_url":"https://api.github.com/users/jlewi/gists{/gist_id}","starred_url":"https://api.github.com/users/jlewi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlewi/subscriptions","organizations_url":"https://api.github.com/users/jlewi/orgs","repos_url":"https://api.github.com/users/jlewi/repos","events_url":"https://api.github.com/users/jlewi/events{/privacy}","received_events_url":"https://api.github.com/users/jlewi/received_events","type":"User","site_admin":false}],"milestone":null,"comments":13,"created_at":"2018-12-10T07:37:05Z","updated_at":"2018-12-17T22:56:14Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/kubeflow/kubeflow/pulls/2067","html_url":"https://github.com/kubeflow/kubeflow/pull/2067","diff_url":"https://github.com/kubeflow/kubeflow/pull/2067.diff","patch_url":"https://github.com/kubeflow/kubeflow/pull/2067.patch"},"body":"By default, if we just enable s3 for model storage, we get string type from default template. \r\n\r\n```\r\nks param set ${MODEL_COMPONENT} s3Enable True\r\n\r\nks show default -c mnist-v3\r\n\r\n...\r\n        - name: S3_REGION\r\n          value: us-west-1\r\n        - name: S3_USE_HTTPS\r\n          value: \"true\"\r\n        - name: S3_VERIFY_SSL\r\n          value: \"true\"\r\n...\r\n\r\n```\r\n\r\nIf we set true/false or 1/0 to these two parameters,  it will become boolean in libsonnet and kubernetes resource file. \r\n\r\n```\r\nks param set ${MODEL_COMPONENT} s3UseHttps true\r\nks param set ${MODEL_COMPONENT} s3VerifySsl true\r\n\r\n# I tried using \"true\" and still got same result.\r\n\r\n...\r\n        - name: S3_REGION\r\n          value: us-west-1\r\n        - name: S3_USE_HTTPS\r\n          value: true\r\n        - name: S3_VERIFY_SSL\r\n          value: true\r\n...\r\n\r\n```\r\n\r\nIn that case, since kubernetes environment require `String` value. deployment creation will fail as following log shows. \r\n\r\nI think if we enforce use string type in `tf-serving-aws.jsonnet` and we can get rid of this problem and make code more robust. User doesn't have to debug these kind of issues. \r\n\r\n```\r\n\r\n➜  ks_app ks apply default -c mnist-v3\r\nINFO Applying services kubeflow.mnist-v3\r\nINFO Creating non-existent services kubeflow.mnist-v3\r\nINFO Applying deployments kubeflow.mnist-v3\r\nINFO Creating non-existent deployments kubeflow.mnist-v3\r\nERROR handle object: creating object: creating object: Deployment in version \"v1beta1\" cannot be handled as a Deployment: v1beta1.Deployment.Spec: v1beta1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Containers: []v1.Container: v1.Container.Env: []v1.EnvVar: v1.EnvVar.Value: ReadString: expects \" or n, but found t, error found in #10 byte of ...|,\"value\":true},{\"nam|..., bigger context ...|lue\":\"us-west-1\"},{\"name\":\"S3_USE_HTTPS\",\"value\":true},{\"name\":\"S3_VERIFY_SSL\",\"value\":true},{\"name\"|...\r\n\r\n```\r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/kubeflow/kubeflow/2067)\r\n<!-- Reviewable:end -->\r\n"},"comment":{"url":"https://api.github.com/repos/kubeflow/kubeflow/issues/comments/448030446","html_url":"https://github.com/kubeflow/kubeflow/pull/2067#issuecomment-448030446","issue_url":"https://api.github.com/repos/kubeflow/kubeflow/issues/2067","id":448030446,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0ODAzMDQ0Ng==","user":{"login":"k8s-ci-robot","id":20407524,"node_id":"MDQ6VXNlcjIwNDA3NTI0","avatar_url":"https://avatars0.githubusercontent.com/u/20407524?v=4","gravatar_id":"","url":"https://api.github.com/users/k8s-ci-robot","html_url":"https://github.com/k8s-ci-robot","followers_url":"https://api.github.com/users/k8s-ci-robot/followers","following_url":"https://api.github.com/users/k8s-ci-robot/following{/other_user}","gists_url":"https://api.github.com/users/k8s-ci-robot/gists{/gist_id}","starred_url":"https://api.github.com/users/k8s-ci-robot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k8s-ci-robot/subscriptions","organizations_url":"https://api.github.com/users/k8s-ci-robot/orgs","repos_url":"https://api.github.com/users/k8s-ci-robot/repos","events_url":"https://api.github.com/users/k8s-ci-robot/events{/privacy}","received_events_url":"https://api.github.com/users/k8s-ci-robot/received_events","type":"User","site_admin":false},"created_at":"2018-12-17T22:56:14Z","updated_at":"2018-12-17T22:56:14Z","author_association":"NONE","body":"[APPROVALNOTIFIER] This PR is **APPROVED**\n\nThis pull-request has been approved by: *<a href=\"https://github.com/kubeflow/kubeflow/pull/2067#issuecomment-448030430\" title=\"Approved\">jlewi</a>*\n\nThe full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands).\n\nThe pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)\n\n<details >\nNeeds approval from an approver in each of these files:\n\n- ~~[kubeflow/OWNERS](https://github.com/kubeflow/kubeflow/blob/master/kubeflow/OWNERS)~~ [jlewi]\n\nApprovers can indicate their approval by writing `/approve` in a comment\nApprovers can cancel approval by writing `/approve cancel` in a comment\n</details>\n<!-- META={\"approvers\":[]} -->"}}
{"actor":{"display_login":"k8s-ci-robot"}}