From 67de934fd7f22062a4e2ac8b8d20cfc97f2b4e7f Mon Sep 17 00:00:00 2001 From: Jesse Suen Date: Thu, 21 Jun 2018 00:03:27 -0700 Subject: [PATCH] Add the guestbook example app (v0.1) --- README.md | 1 + guestbook/.gitignore | 4 ++ guestbook/app.yaml | 11 ++++ guestbook/components/guestbook-ui.jsonnet | 58 +++++++++++++++++++ guestbook/components/params.libsonnet | 18 ++++++ guestbook/environments/base.libsonnet | 4 ++ .../environments/default/globals.libsonnet | 2 + guestbook/environments/default/main.jsonnet | 8 +++ .../environments/default/params.libsonnet | 17 ++++++ 9 files changed, 123 insertions(+) create mode 100644 README.md create mode 100644 guestbook/.gitignore create mode 100644 guestbook/app.yaml create mode 100644 guestbook/components/guestbook-ui.jsonnet create mode 100644 guestbook/components/params.libsonnet create mode 100644 guestbook/environments/base.libsonnet create mode 100644 guestbook/environments/default/globals.libsonnet create mode 100644 guestbook/environments/default/main.jsonnet create mode 100644 guestbook/environments/default/params.libsonnet diff --git a/README.md b/README.md new file mode 100644 index 0000000..afeb97c --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# ArgoCD Example Apps diff --git a/guestbook/.gitignore b/guestbook/.gitignore new file mode 100644 index 0000000..f8714d3 --- /dev/null +++ b/guestbook/.gitignore @@ -0,0 +1,4 @@ +/lib +/.ksonnet/registries +/app.override.yaml +/.ks_environment diff --git a/guestbook/app.yaml b/guestbook/app.yaml new file mode 100644 index 0000000..4caf70f --- /dev/null +++ b/guestbook/app.yaml @@ -0,0 +1,11 @@ +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: guestbook +version: 0.0.1 diff --git a/guestbook/components/guestbook-ui.jsonnet b/guestbook/components/guestbook-ui.jsonnet new file mode 100644 index 0000000..a34f1ad --- /dev/null +++ b/guestbook/components/guestbook-ui.jsonnet @@ -0,0 +1,58 @@ +local env = std.extVar("__ksonnet/environments"); +local params = std.extVar("__ksonnet/params").components["guestbook-ui"]; +[ + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": params.name + }, + "spec": { + "ports": [ + { + "port": params.servicePort, + "targetPort": params.containerPort + } + ], + "selector": { + "app": params.name + }, + "type": params.type + } + }, + { + "apiVersion": "apps/v1beta2", + "kind": "Deployment", + "metadata": { + "name": params.name + }, + "spec": { + "replicas": params.replicas, + "selector": { + "matchLabels": { + "app": params.name + }, + }, + "template": { + "metadata": { + "labels": { + "app": params.name + } + }, + "spec": { + "containers": [ + { + "image": params.image, + "name": params.name, + "ports": [ + { + "containerPort": params.containerPort + } + ] + } + ] + } + } + } + } +] diff --git a/guestbook/components/params.libsonnet b/guestbook/components/params.libsonnet new file mode 100644 index 0000000..66699c3 --- /dev/null +++ b/guestbook/components/params.libsonnet @@ -0,0 +1,18 @@ +{ + 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 + "guestbook-ui": { + containerPort: 80, + image: "gcr.io/heptio-images/ks-guestbook-demo:0.1", + name: "guestbook-ui", + replicas: 1, + servicePort: 80, + type: "LoadBalancer", + }, + }, +} diff --git a/guestbook/environments/base.libsonnet b/guestbook/environments/base.libsonnet new file mode 100644 index 0000000..a129aff --- /dev/null +++ b/guestbook/environments/base.libsonnet @@ -0,0 +1,4 @@ +local components = std.extVar("__ksonnet/components"); +components + { + // Insert user-specified overrides here. +} diff --git a/guestbook/environments/default/globals.libsonnet b/guestbook/environments/default/globals.libsonnet new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/guestbook/environments/default/globals.libsonnet @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/guestbook/environments/default/main.jsonnet b/guestbook/environments/default/main.jsonnet new file mode 100644 index 0000000..58695a8 --- /dev/null +++ b/guestbook/environments/default/main.jsonnet @@ -0,0 +1,8 @@ +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"}) +} diff --git a/guestbook/environments/default/params.libsonnet b/guestbook/environments/default/params.libsonnet new file mode 100644 index 0000000..b6eb32d --- /dev/null +++ b/guestbook/environments/default/params.libsonnet @@ -0,0 +1,17 @@ +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) + }, +}