guestbook-ui.jsonnet 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. local env = std.extVar("__ksonnet/environments");
  2. local params = std.extVar("__ksonnet/params").components["guestbook-ui"];
  3. [
  4. {
  5. "apiVersion": "v1",
  6. "kind": "Service",
  7. "metadata": {
  8. "name": params.name
  9. },
  10. "spec": {
  11. "ports": [
  12. {
  13. "port": params.servicePort,
  14. "targetPort": params.containerPort
  15. }
  16. ],
  17. "selector": {
  18. "app": params.name
  19. },
  20. "type": params.type
  21. }
  22. },
  23. {
  24. "apiVersion": "apps/v1beta2",
  25. "kind": "Deployment",
  26. "metadata": {
  27. "name": params.name
  28. },
  29. "spec": {
  30. "replicas": params.replicas,
  31. "selector": {
  32. "matchLabels": {
  33. "app": params.name
  34. },
  35. },
  36. "template": {
  37. "metadata": {
  38. "labels": {
  39. "app": params.name
  40. }
  41. },
  42. "spec": {
  43. "containers": [
  44. {
  45. "image": params.image,
  46. "name": params.name,
  47. "ports": [
  48. {
  49. "containerPort": params.containerPort
  50. }
  51. ],
  52. // dummy readiness probe to slow down the rollout for demo/testing
  53. "readinessProbe": {
  54. "exec": {
  55. "command": [ "sh", "-c", "exit 0" ],
  56. },
  57. "initialDelaySeconds": 30,
  58. "periodSeconds": 120,
  59. }
  60. }
  61. ]
  62. }
  63. }
  64. }
  65. }
  66. ]