Эх сурвалжийг харах

Update examples for Argo CD v0.11

Jesse Suen 6 жил өмнө
parent
commit
382b85852f
62 өөрчлөгдсөн 287 нэмэгдсэн , 150 устгасан
  1. 4 3
      README.md
  2. 0 0
      blue-green-deploy-workflow/.gitignore
  3. 1 1
      blue-green-deploy-workflow/app.yaml
  4. 13 15
      blue-green-deploy-workflow/components/bg-guestbook.jsonnet
  5. 0 0
      blue-green-deploy-workflow/components/bg-workflow.jsonnet
  6. 5 6
      blue-green-deploy-workflow/components/params.libsonnet
  7. 6 6
      blue-green-deploy-workflow/components/wf/bluegreen.yaml
  8. 0 0
      blue-green-deploy-workflow/environments/base.libsonnet
  9. 0 0
      blue-green-deploy-workflow/environments/default/globals.libsonnet
  10. 0 0
      blue-green-deploy-workflow/environments/default/main.jsonnet
  11. 0 0
      blue-green-deploy-workflow/environments/default/params.libsonnet
  12. 6 2
      blue-green-deploy/app.yaml
  13. 71 0
      blue-green-deploy/blue-green.sh
  14. 3 3
      blue-green-deploy/components/bg-guestbook.jsonnet
  15. 131 0
      blue-green-deploy/components/bg-pod.jsonnet
  16. 2 2
      blue-green-deploy/components/params.libsonnet
  17. 2 1
      blue-green-deploy/environments/default/main.jsonnet
  18. 0 1
      guestbook/guestbook-ui-deployment.yaml
  19. 0 1
      guestbook/guestbook-ui-svc.yaml
  20. 1 1
      jsonnet-guestbook/params.libsonnet
  21. 0 5
      kustomize-guestbook/base/kustomization.yaml
  22. 0 7
      kustomize-guestbook/dev/kustomization.yaml
  23. 5 0
      kustomize-guestbook/kustomization.yaml
  24. 0 11
      kustomize-guestbook/prod/kustomization.yaml
  25. 0 11
      pre-post-sync/app.yaml
  26. 7 0
      pre-post-sync/kustomization.yaml
  27. 1 1
      pre-post-sync/post-sync-job.yaml
  28. 1 1
      pre-post-sync/pre-sync-job.yaml
  29. 0 4
      sock-shop/.gitignore
  30. 0 0
      sock-shop/base/carts-db-dep.yaml
  31. 0 0
      sock-shop/base/carts-db-svc.yaml
  32. 0 0
      sock-shop/base/carts-dep.yaml
  33. 0 0
      sock-shop/base/catalogue-db-dep.yaml
  34. 0 0
      sock-shop/base/catalogue-db-svc.yaml
  35. 0 0
      sock-shop/base/catalogue-dep.yaml
  36. 0 0
      sock-shop/base/catalogue-svc.yaml
  37. 0 0
      sock-shop/base/front-end-dep.yaml
  38. 0 0
      sock-shop/base/front-end-svc.yaml
  39. 0 0
      sock-shop/base/orders-db-dep.yaml
  40. 0 0
      sock-shop/base/orders-db-svc.yaml
  41. 0 0
      sock-shop/base/orders-dep.yaml
  42. 0 0
      sock-shop/base/orders-svc.yaml
  43. 0 0
      sock-shop/base/payment-dep.yaml
  44. 0 0
      sock-shop/base/payment-svc.yaml
  45. 0 0
      sock-shop/base/queue-master-dep.yaml
  46. 0 0
      sock-shop/base/queue-master-svc.yaml
  47. 0 0
      sock-shop/base/rabbitmq-dep.yaml
  48. 0 0
      sock-shop/base/rabbitmq-svc.yaml
  49. 0 0
      sock-shop/base/session-db-dep.yaml
  50. 0 0
      sock-shop/base/session-db-svc.yaml
  51. 0 0
      sock-shop/base/shipping-dep.yaml
  52. 0 0
      sock-shop/base/shipping-svc.yaml
  53. 0 0
      sock-shop/base/user-db-dep.yaml
  54. 0 0
      sock-shop/base/user-db-svc.yaml
  55. 0 0
      sock-shop/base/user-dep.yaml
  56. 0 0
      sock-shop/base/user-svc.yaml
  57. 0 37
      sock-shop/components/params.libsonnet
  58. 0 4
      sock-shop/environments/base.libsonnet
  59. 0 2
      sock-shop/environments/default/globals.libsonnet
  60. 0 8
      sock-shop/environments/default/main.jsonnet
  61. 0 17
      sock-shop/environments/default/params.libsonnet
  62. 28 0
      sock-shop/kustomization.yaml

+ 4 - 3
README.md

@@ -6,11 +6,12 @@ to explore ArgoCD and GitOps!
 
 | Application | Description |
 |-------------|-------------|
-| [guestbook](guestbook/) | A hello word application |
+| [guestbook](guestbook/) | A hello word guestbook application as plain YAML |
 | [ksonnet-guestbook](ksonnet-guestbook/) | The guestbook application as a ksonnet app |
 | [helm-guestbook](helm-guestbook/) | The guestbook application as a Helm chart |
 | [jsonnet-guestbook](jsonnet-guestbook/) | The guestbook application as a raw jsonnet |
 | [kustomize-guestbook](kustomize-guestbook/) | The guestbook application as a kustomize app |
-| [pre-post-sync](pre-post-sync/) | Demonstrates ArgoCD PreSync and PostSync hooks |
-| [blue-green-deploy](blue-green-deploy/) | Demonstrates an ArgoCD Sync hook which performs a blue/green deployment |
+| [pre-post-sync](pre-post-sync/) | Demonstrates Argo CD PreSync and PostSync hooks |
+| [blue-green-deploy](blue-green-deploy/) | Demonstrates an Argo CD Sync hook which performs a blue/green deployment |
+| [blue-green-deploy-workflow](blue-green-deploy-workflow/) | Demonstrates an ArgoCD Sync hook which performs a blue/green deployment as an Argo Workflow |
 | [sock-shop](sock-shop/) | A microservices demo application (https://microservices-demo.github.io) |

+ 0 - 0
pre-post-sync/.gitignore → blue-green-deploy-workflow/.gitignore


+ 1 - 1
sock-shop/app.yaml → blue-green-deploy-workflow/app.yaml

@@ -7,5 +7,5 @@ environments:
     k8sVersion: v1.10.0
     path: default
 kind: ksonnet.io/app
-name: sock-shop
+name: blue-green-deploy-workflow
 version: 0.0.1

+ 13 - 15
pre-post-sync/components/guestbook-ui.jsonnet → blue-green-deploy-workflow/components/bg-guestbook.jsonnet

@@ -1,11 +1,14 @@
 local env = std.extVar("__ksonnet/environments");
-local params = std.extVar("__ksonnet/params").components["guestbook-ui"];
+local params = std.extVar("__ksonnet/params").components["bg-guestbook"];
 [
    {
       "apiVersion": "v1",
       "kind": "Service",
       "metadata": {
-         "name": params.name
+         "name": params.name,
+         "annotations": {
+             "argocd.argoproj.io/hook": "Skip",
+         },
       },
       "spec": {
          "ports": [
@@ -24,7 +27,10 @@ local params = std.extVar("__ksonnet/params").components["guestbook-ui"];
       "apiVersion": "apps/v1beta2",
       "kind": "Deployment",
       "metadata": {
-         "name": params.name
+         "name": params.name,
+         "annotations": {
+             "argocd.argoproj.io/hook": "Skip",
+         },
       },
       "spec": {
          "replicas": params.replicas,
@@ -42,21 +48,13 @@ local params = std.extVar("__ksonnet/params").components["guestbook-ui"];
             "spec": {
                "containers": [
                   {
-                    "image": params.image,
-                    "name": params.name,
-                    "ports": [
+                     "image": params.image,
+                     "name": params.name,
+                     "ports": [
                         {
                             "containerPort": params.containerPort
                         }
-                    ],
-                    // dummy readiness probe to slow down the rollout for demo/testing
-                    "readinessProbe": {
-                        "exec": {
-                            "command": [ "sh", "-c", "exit 0" ],
-                        },
-                        "initialDelaySeconds": 10,
-                        "periodSeconds": 30,
-                    }
+                     ]
                   }
                ]
             }

+ 0 - 0
blue-green-deploy/components/bg-workflow.jsonnet → blue-green-deploy-workflow/components/bg-workflow.jsonnet


+ 5 - 6
pre-post-sync/components/params.libsonnet → blue-green-deploy-workflow/components/params.libsonnet

@@ -6,15 +6,14 @@
   components: {
     // Component-level parameters, defined initially from 'ks prototype use ...'
     // Each object below should correspond to a component in the components/ directory
-    "guestbook-ui": {
+    "bg-guestbook": {
       containerPort: 80,
       image: "gcr.io/heptio-images/ks-guestbook-demo:0.2",
-      name: "pre-post-sync",
-      replicas: 1,
+      name: "bg-guestbook",
+      replicas: 3,
       servicePort: 80,
-      type: "ClusterIP",
+      type: "LoadBalancer",
     },
-    "pre-sync-job": {},
-    "post-sync-job": {},
+    "bg-workflow": {},
   },
 }

+ 6 - 6
blue-green-deploy/components/wf/bluegreen.yaml → blue-green-deploy-workflow/components/wf/bluegreen.yaml

@@ -81,8 +81,8 @@ spec:
       args:
       - kubectl get --export -o json deployment.apps/{{workflow.parameters.deployment-name}} > /original-deploy &&
         jq -r '.metadata.name+="-blue" |
-               .spec.template.metadata.labels += (.spec.template.metadata.labels | to_entries | map(select(.key != "applications.argoproj.io/app-name")) | map(.value+="-blue") | from_entries) |
-               .spec.selector.matchLabels += (.spec.selector.matchLabels | to_entries | map(select(.key != "applications.argoproj.io/app-name")) | map(.value+="-blue") | from_entries)'
+               .spec.template.metadata.labels += (.spec.template.metadata.labels | to_entries | map(select(.key != "app.kubernetes.io/instance")) | map(.value+="-blue") | from_entries) |
+               .spec.selector.matchLabels += (.spec.selector.matchLabels | to_entries | map(select(.key != "app.kubernetes.io/instance")) | map(.value+="-blue") | from_entries)'
             /original-deploy > /cloned-deploy &&
         cat  /cloned-deploy &&
         kubectl apply -o yaml -f /cloned-deploy
@@ -103,12 +103,12 @@ spec:
       command: [sh, -c, -x]
       args:
       - cp /manifest /manifest-new &&
-        APP_NAME=$(kubectl get -n default -f /manifest-new -o json | jq -r '.metadata.labels."applications.argoproj.io/app-name"') &&
+        APP_NAME=$(kubectl get -f /manifest-new -o json | jq -r '.metadata.labels."app.kubernetes.io/instance"') &&
         if [ "$APP_NAME" != "null" ]; then
-          jq -r --arg APP_NAME "$APP_NAME" '.metadata.labels."applications.argoproj.io/app-name" = $APP_NAME' /manifest-new > /manifest-new.tmp &&
+          jq -r --arg APP_NAME "$APP_NAME" '.metadata.labels."app.kubernetes.io/instance" = $APP_NAME' /manifest-new > /manifest-new.tmp &&
           mv /manifest-new.tmp /manifest-new &&
           if [ "$(jq -r .spec.template.metadata.labels /manifest-new)" != "null" ]; then
-            jq -r --arg APP_NAME "$APP_NAME" '.spec.template.metadata.labels."applications.argoproj.io/app-name" = $APP_NAME' /manifest-new > /manifest-new.tmp &&
+            jq -r --arg APP_NAME "$APP_NAME" '.spec.template.metadata.labels."app.kubernetes.io/instance" = $APP_NAME' /manifest-new > /manifest-new.tmp &&
             mv /manifest-new.tmp /manifest-new ;
           fi ;
         fi &&
@@ -131,7 +131,7 @@ spec:
       image: argoproj/argoexec:v2.1.1
       command: [sh, -c, -x]
       args:
-      - kubectl get -n default service {{workflow.parameters.service-name}} --export -o json > /original-svc &&
+      - kubectl get service {{workflow.parameters.service-name}} --export -o json > /original-svc &&
         jq '.spec.selector = (.spec.selector | with_entries(.value+="-blue"))' /original-svc > /blue-svc &&
         kubectl apply -o yaml -f /blue-svc
 

+ 0 - 0
pre-post-sync/environments/base.libsonnet → blue-green-deploy-workflow/environments/base.libsonnet


+ 0 - 0
pre-post-sync/environments/default/globals.libsonnet → blue-green-deploy-workflow/environments/default/globals.libsonnet


+ 0 - 0
pre-post-sync/environments/default/main.jsonnet → blue-green-deploy-workflow/environments/default/main.jsonnet


+ 0 - 0
pre-post-sync/environments/default/params.libsonnet → blue-green-deploy-workflow/environments/default/params.libsonnet


+ 6 - 2
blue-green-deploy/app.yaml

@@ -1,11 +1,15 @@
-apiVersion: 0.1.0
+apiVersion: 0.3.0
 environments:
   default:
     destination:
-      namespace: default
+      namespace: blue-green-deploy
       server: https://kubernetes.default.svc
     k8sVersion: v1.10.0
     path: default
 kind: ksonnet.io/app
 name: blue-green-deploy
+registries:
+  incubator:
+    protocol: github
+    uri: github.com/ksonnet/parts/tree/master/incubator
 version: 0.0.1

+ 71 - 0
blue-green-deploy/blue-green.sh

@@ -0,0 +1,71 @@
+#!bin/bash
+
+DEPLOYMENT_NAME=$(echo "${DEPLOY_MANIFEST}" | jq -r '.metadata.name')
+SERVICE_NAME=$(echo "${SERVICE_MANIFEST}" | jq -r '.metadata.name')
+
+# 1. Check if the deployment exists. If it doesn't exist, this is the initial deployment and we
+# can simply deploy without blue-green. Add the app label using jq
+out=$(kubectl get --export -o json deployment.apps/${DEPLOYMENT_NAME} 2>&1)
+if [ $? -ne 0 ]; then
+  if [[ "${out}" =~ "NotFound" ]] ; then
+    echo "Initial deployment"
+    echo ${DEPLOY_MANIFEST} | \
+      jq ".metadata.labels += {\"app.kubernetes.io/instance\": \"${APPNAME}\"}" | \
+      kubectl apply -o yaml -f - || exit 1
+    echo ${SERVICE_MANIFEST} | \
+      jq ".metadata.labels += {\"app.kubernetes.io/instance\": \"${APPNAME}\"}" | \
+      kubectl apply -o yaml -f - || exit 1
+    exit 0
+  fi
+  echo "Failed to get deployment: ${out}"
+  exit 1
+fi
+ORIGINAL_DEPLOY_MANIFEST=$out
+
+# 2. Clone the original, running deployment to a temporary deployment, with tweaks to its name and
+# selectors. The jq command carries over all labels and selectors and appends the `-temp` suffix.
+TMP_DEPLOYMENT_NAME="${DEPLOYMENT_NAME}-temp"
+echo ${ORIGINAL_DEPLOY_MANIFEST} | jq -r '.metadata.name+="-temp" |
+  .spec.template.metadata.labels += (.spec.template.metadata.labels | to_entries | map(.value+="-temp") | from_entries) |
+  .spec.selector.matchLabels += (.spec.selector.matchLabels | to_entries | map(.value+="-temp") | from_entries)' |
+  kubectl apply -f -
+
+# 3. Wait for cloned deployment to become ready.
+sleep 2
+echo "Waiting for successful rollout of new (temporary) deployment"
+kubectl rollout status --watch=true deployments.apps/${TMP_DEPLOYMENT_NAME} || exit 1
+echo "Rollout of temporary deployment successful"
+
+# 4. Patch the service object such that all traffic is redirected to the cloned, temporary
+# deployment. After this step, the original deployment will no longer be receiving traffic.
+kubectl get service ${SERVICE_NAME} --export -o json | \
+  jq '.spec.selector = (.spec.selector | with_entries(.value+="-temp"))' |
+  kubectl apply -f - || exit 1
+sleep 5 # Sleep slightly to allow iptables to get propagated to all nodes in the cluster
+
+# 5. Update the original deployment (now receiving no traffic) with the new manifest
+echo "Updating original deployment"
+echo ${DEPLOY_MANIFEST} | \
+  jq ".metadata.labels += {\"app.kubernetes.io/instance\": \"${APPNAME}\"}" | \
+  kubectl apply -f - || exit 1
+
+# 6. Wait for the new deployment to become complete
+sleep 2
+echo "Waiting for successful rollout of new deployment"
+kubectl rollout status --watch=true deployments.apps/${DEPLOYMENT_NAME} || exit 1
+echo "Rollout of new deployment successful"
+
+# dummy wait step for demo purposes
+echo "sleeping for 30 seconds"
+sleep 30
+
+# 7. Apply the new service object. Traffic will be redirected to the new version of the deployment
+echo "Updating original service object"
+echo ${SERVICE_MANIFEST} | \
+  jq ".metadata.labels += {\"app.kubernetes.io/instance\": \"${APPNAME}\"}" | \
+  kubectl apply -f - || exit 1
+
+sleep 10
+# 8. Remove the cloned deployment, which is no longer receiving any traffic
+echo "Deleting ephemeral deployment"
+kubectl delete deployments/${TMP_DEPLOYMENT_NAME} --ignore-not-found=true || exit 1

+ 3 - 3
blue-green-deploy/components/bg-guestbook.jsonnet

@@ -51,9 +51,9 @@ local params = std.extVar("__ksonnet/params").components["bg-guestbook"];
                      "image": params.image,
                      "name": params.name,
                      "ports": [
-                     {
-                        "containerPort": params.containerPort
-                     }
+                        {
+                            "containerPort": params.containerPort
+                        }
                      ]
                   }
                ]

+ 131 - 0
blue-green-deploy/components/bg-pod.jsonnet

@@ -0,0 +1,131 @@
+local bgGuestbook = std.extVar("__ksonnet/components")["bg-guestbook"];
+local bgGuestbookSvc = bgGuestbook[0];
+local bgGuestbookDeploy = bgGuestbook[1];
+
+[
+{
+  "apiVersion": "v1",
+  "kind": "Pod",
+  "metadata": {
+    "generateName": "blue-green-",
+    "annotations": {
+      "argocd.argoproj.io/hook": "Sync",
+      "deploy-manifest": std.manifestJson(bgGuestbookDeploy),
+      "svc-manifest": std.manifestJson(bgGuestbookSvc),
+    },
+  },
+  "spec": {
+    "serviceAccountName": "blue-green-sa",
+    "restartPolicy": "Never",
+    "containers": [
+      {
+        "name": "blue-green",
+        "image": "argoproj/argoexec:latest",
+        "command": ["bash", "-c"],
+        "args": ["
+            curl -L -o /usr/local/bin/kubectl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl &&
+            chmod +x /usr/local/bin/kubectl &&
+            curl -sSL -o /usr/local/bin/blue-green.sh https://raw.githubusercontent.com/argoproj/argocd-example-apps/master/blue-green-deploy/blue-green.sh &&
+            chmod +x /usr/local/bin/blue-green.sh &&
+            blue-green.sh
+        "],
+        "env": [
+          {
+            "name": "DEPLOY_MANIFEST",
+            "valueFrom": {
+              "fieldRef": {
+                "fieldPath": "metadata.annotations['deploy-manifest']"
+              }
+            }
+          },
+          {
+            "name": "SERVICE_MANIFEST",
+            "valueFrom": {
+              "fieldRef": {
+                "fieldPath": "metadata.annotations['svc-manifest']"
+              }
+            }
+          },
+          // NOTE: app.kubernetes.io/instance will get injected into the hook object
+          {
+            "name": "APPNAME",
+            "valueFrom": {
+              "fieldRef": {
+                "fieldPath": "metadata.labels['app.kubernetes.io/instance']"
+              }
+            }
+          }
+        ]
+      }
+    ],
+  }
+},
+// RBAC to allow the blue-green pod privileges to manipulate deployments and services
+{
+	"apiVersion": "v1",
+	"kind": "ServiceAccount",
+	"metadata": {
+		"name": "blue-green-sa"
+	}
+},
+{
+	"apiVersion": "rbac.authorization.k8s.io/v1",
+	"kind": "Role",
+	"metadata": {
+		"name": "blue-green-role"
+	},
+	"rules": [
+		{
+			"apiGroups": [
+				"apps",
+        "extensions"
+			],
+			"resources": [
+				"deployments",
+			],
+			"verbs": [
+        "list",
+        "get",
+				"create",
+				"update",
+				"patch",
+				"delete",
+			]
+		},
+		{
+			"apiGroups": [
+				""
+			],
+			"resources": [
+				"services"
+			],
+			"verbs": [
+        "list",
+        "get",
+				"create",
+				"update",
+				"patch",
+				"delete",
+			]
+		}
+	]
+},
+{
+  "apiVersion": "rbac.authorization.k8s.io/v1",
+  "kind": "RoleBinding",
+  "metadata": {
+    "name": "blue-green-rolebinding"
+  },
+  "roleRef": {
+    "apiGroup": "rbac.authorization.k8s.io",
+    "kind": "Role",
+    "name": "blue-green-role"
+  },
+  "subjects": [
+    {
+      "kind": "ServiceAccount",
+      "name": "blue-green-sa"
+    }
+  ]
+}
+]

+ 2 - 2
blue-green-deploy/components/params.libsonnet

@@ -9,11 +9,11 @@
     "bg-guestbook": {
       containerPort: 80,
       image: "gcr.io/heptio-images/ks-guestbook-demo:0.2",
-      name: "bg-guestbook",
+      name: "blue-green-guestbook",
       replicas: 3,
       servicePort: 80,
       type: "LoadBalancer",
     },
-    "bg-workflow": {},
+    "bg-pod": {},
   },
 }

+ 2 - 1
blue-green-deploy/environments/default/main.jsonnet

@@ -1,8 +1,9 @@
 local base = import "base.libsonnet";
 // uncomment if you reference ksonnet-lib
 // local k = import "k.libsonnet";
+// local deployment = k.apps.v1beta2.deployment;
 
 base + {
   // Insert user-specified overrides here. For example if a component is named \"nginx-deployment\", you might have something like:\n")
-  // "nginx-deployment"+: k.deployment.mixin.metadata.labels({foo: "bar"})
+  // "nginx-deployment"+: deployment.mixin.metadata.withLabels({foo: "bar"})
 }

+ 0 - 1
guestbook/guestbook-ui-deployment.yaml

@@ -1,4 +1,3 @@
----
 apiVersion: apps/v1beta2
 kind: Deployment
 metadata:

+ 0 - 1
guestbook/guestbook-ui-svc.yaml

@@ -1,4 +1,3 @@
----
 apiVersion: v1
 kind: Service
 metadata:

+ 1 - 1
jsonnet-guestbook/params.libsonnet

@@ -1,7 +1,7 @@
 {
   containerPort: 80,
   image: "gcr.io/heptio-images/ks-guestbook-demo:0.2",
-  name: "guestbook-ui",
+  name: "jsonnet-guestbook-ui",
   replicas: 1,
   servicePort: 80,
   type: "LoadBalancer",

+ 0 - 5
kustomize-guestbook/base/kustomization.yaml

@@ -1,5 +0,0 @@
-namePrefix: kustomize-
-
-resources:
-- ../../guestbook/guestbook-ui-deployment.yaml
-- ../../guestbook/guestbook-ui-svc.yaml

+ 0 - 7
kustomize-guestbook/dev/kustomization.yaml

@@ -1,7 +0,0 @@
-namePrefix: dev-
-
-bases:
-- ../base
-
-commonLabels:
-  environment: dev

+ 5 - 0
kustomize-guestbook/kustomization.yaml

@@ -0,0 +1,5 @@
+namePrefix: kustomize-
+
+resources:
+- ../guestbook/guestbook-ui-deployment.yaml
+- ../guestbook/guestbook-ui-svc.yaml

+ 0 - 11
kustomize-guestbook/prod/kustomization.yaml

@@ -1,11 +0,0 @@
-namePrefix: prod-
-
-bases:
-- ../base
-
-commonLabels:
-  environment: prod
-
-imageTags:
-  - name: gcr.io/heptio-images/ks-guestbook-demo
-    newTag: "0.1"

+ 0 - 11
pre-post-sync/app.yaml

@@ -1,11 +0,0 @@
-apiVersion: 0.1.0
-environments:
-  default:
-    destination:
-      namespace: default
-      server: https://kubernetes.default.svc
-    k8sVersion: v1.10.0
-    path: default
-kind: ksonnet.io/app
-name: pre-post-sync
-version: 0.0.1

+ 7 - 0
pre-post-sync/kustomization.yaml

@@ -0,0 +1,7 @@
+namePrefix: pre-post-sync-
+
+resources:
+- ../guestbook/guestbook-ui-deployment.yaml
+- ../guestbook/guestbook-ui-svc.yaml
+- pre-sync-job.yaml
+- post-sync-job.yaml

+ 1 - 1
pre-post-sync/components/post-sync-job.yaml → pre-post-sync/post-sync-job.yaml

@@ -1,7 +1,7 @@
 apiVersion: batch/v1
 kind: Job
 metadata:
-  generateName: after-
+  name: after
   annotations:
     argocd.argoproj.io/hook: PostSync
     argocd.argoproj.io/hook-delete-policy: HookSucceeded

+ 1 - 1
pre-post-sync/components/pre-sync-job.yaml → pre-post-sync/pre-sync-job.yaml

@@ -1,7 +1,7 @@
 apiVersion: batch/v1
 kind: Job
 metadata:
-  generateName: before-
+  name: before
   annotations:
     argocd.argoproj.io/hook: PreSync
     argocd.argoproj.io/hook-delete-policy: HookSucceeded

+ 0 - 4
sock-shop/.gitignore

@@ -1,4 +0,0 @@
-/lib
-/.ksonnet/registries
-/app.override.yaml
-/.ks_environment

+ 0 - 0
sock-shop/components/carts-db-dep.yaml → sock-shop/base/carts-db-dep.yaml


+ 0 - 0
sock-shop/components/carts-db-svc.yaml → sock-shop/base/carts-db-svc.yaml


+ 0 - 0
sock-shop/components/carts-dep.yaml → sock-shop/base/carts-dep.yaml


+ 0 - 0
sock-shop/components/catalogue-db-dep.yaml → sock-shop/base/catalogue-db-dep.yaml


+ 0 - 0
sock-shop/components/catalogue-db-svc.yaml → sock-shop/base/catalogue-db-svc.yaml


+ 0 - 0
sock-shop/components/catalogue-dep.yaml → sock-shop/base/catalogue-dep.yaml


+ 0 - 0
sock-shop/components/catalogue-svc.yaml → sock-shop/base/catalogue-svc.yaml


+ 0 - 0
sock-shop/components/front-end-dep.yaml → sock-shop/base/front-end-dep.yaml


+ 0 - 0
sock-shop/components/front-end-svc.yaml → sock-shop/base/front-end-svc.yaml


+ 0 - 0
sock-shop/components/orders-db-dep.yaml → sock-shop/base/orders-db-dep.yaml


+ 0 - 0
sock-shop/components/orders-db-svc.yaml → sock-shop/base/orders-db-svc.yaml


+ 0 - 0
sock-shop/components/orders-dep.yaml → sock-shop/base/orders-dep.yaml


+ 0 - 0
sock-shop/components/orders-svc.yaml → sock-shop/base/orders-svc.yaml


+ 0 - 0
sock-shop/components/payment-dep.yaml → sock-shop/base/payment-dep.yaml


+ 0 - 0
sock-shop/components/payment-svc.yaml → sock-shop/base/payment-svc.yaml


+ 0 - 0
sock-shop/components/queue-master-dep.yaml → sock-shop/base/queue-master-dep.yaml


+ 0 - 0
sock-shop/components/queue-master-svc.yaml → sock-shop/base/queue-master-svc.yaml


+ 0 - 0
sock-shop/components/rabbitmq-dep.yaml → sock-shop/base/rabbitmq-dep.yaml


+ 0 - 0
sock-shop/components/rabbitmq-svc.yaml → sock-shop/base/rabbitmq-svc.yaml


+ 0 - 0
sock-shop/components/session-db-dep.yaml → sock-shop/base/session-db-dep.yaml


+ 0 - 0
sock-shop/components/session-db-svc.yaml → sock-shop/base/session-db-svc.yaml


+ 0 - 0
sock-shop/components/shipping-dep.yaml → sock-shop/base/shipping-dep.yaml


+ 0 - 0
sock-shop/components/shipping-svc.yaml → sock-shop/base/shipping-svc.yaml


+ 0 - 0
sock-shop/components/user-db-dep.yaml → sock-shop/base/user-db-dep.yaml


+ 0 - 0
sock-shop/components/user-db-svc.yaml → sock-shop/base/user-db-svc.yaml


+ 0 - 0
sock-shop/components/user-dep.yaml → sock-shop/base/user-dep.yaml


+ 0 - 0
sock-shop/components/user-svc.yaml → sock-shop/base/user-svc.yaml


+ 0 - 37
sock-shop/components/params.libsonnet

@@ -1,37 +0,0 @@
-{
-  global: {
-    // User-defined global parameters; accessible to all component and environments, Ex:
-    // replicas: 4,
-  },
-  components: {
-    // Component-level parameters, defined initially from 'ks prototype use ...'
-    // Each object below should correspond to a component in the components/ directory
-    "carts-db-dep": {},
-    "carts-db-svc": {},
-    "carts-dep": {},
-    "catalogue-db-dep": {},
-    "catalogue-db-svc": {},
-    "catalogue-dep": {},
-    "catalogue-svc": {},
-    "front-end-dep": {},
-    "front-end-svc": {},
-    "orders-db-dep": {},
-    "orders-db-svc": {},
-    "orders-dep": {},
-    "orders-svc": {},
-    "payment-dep": {},
-    "payment-svc": {},
-    "queue-master-dep": {},
-    "queue-master-svc": {},
-    "rabbitmq-dep": {},
-    "rabbitmq-svc": {},
-    "session-db-dep": {},
-    "session-db-svc": {},
-    "shipping-dep": {},
-    "shipping-svc": {},
-    "user-db-dep": {},
-    "user-db-svc": {},
-    "user-dep": {},
-    "user-svc": {},
-  },
-}

+ 0 - 4
sock-shop/environments/base.libsonnet

@@ -1,4 +0,0 @@
-local components = std.extVar("__ksonnet/components");
-components + {
-  // Insert user-specified overrides here.
-}

+ 0 - 2
sock-shop/environments/default/globals.libsonnet

@@ -1,2 +0,0 @@
-{
-}

+ 0 - 8
sock-shop/environments/default/main.jsonnet

@@ -1,8 +0,0 @@
-local base = import "base.libsonnet";
-// uncomment if you reference ksonnet-lib
-// local k = import "k.libsonnet";
-
-base + {
-  // Insert user-specified overrides here. For example if a component is named \"nginx-deployment\", you might have something like:\n")
-  // "nginx-deployment"+: k.deployment.mixin.metadata.labels({foo: "bar"})
-}

+ 0 - 17
sock-shop/environments/default/params.libsonnet

@@ -1,17 +0,0 @@
-local params = std.extVar("__ksonnet/params");
-local globals = import "globals.libsonnet";
-local envParams = params + {
-  components +: {
-    // Insert component parameter overrides here. Ex:
-    // guestbook +: {
-    //   name: "guestbook-dev",
-    //   replicas: params.global.replicas,
-    // },
-  },
-};
-
-{
-  components: {
-    [x]: envParams.components[x] + globals, for x in std.objectFields(envParams.components)
-  },
-}

+ 28 - 0
sock-shop/kustomization.yaml

@@ -0,0 +1,28 @@
+resources:
+- base/carts-db-dep.yaml
+- base/carts-db-svc.yaml
+- base/carts-dep.yaml
+- base/catalogue-db-dep.yaml
+- base/catalogue-db-svc.yaml
+- base/catalogue-dep.yaml
+- base/catalogue-svc.yaml
+- base/front-end-dep.yaml
+- base/front-end-svc.yaml
+- base/orders-db-dep.yaml
+- base/orders-db-svc.yaml
+- base/orders-dep.yaml
+- base/orders-svc.yaml
+- base/payment-dep.yaml
+- base/payment-svc.yaml
+- base/queue-master-dep.yaml
+- base/queue-master-svc.yaml
+- base/rabbitmq-dep.yaml
+- base/rabbitmq-svc.yaml
+- base/session-db-dep.yaml
+- base/session-db-svc.yaml
+- base/shipping-dep.yaml
+- base/shipping-svc.yaml
+- base/user-db-dep.yaml
+- base/user-db-svc.yaml
+- base/user-dep.yaml
+- base/user-svc.yaml