From f54619cf731e07d00ef11c939057ee2ab288113b Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 14 May 2022 18:41:45 +0200 Subject: [PATCH] Added jsonnet example --- .../simple_website-jsonnet/deployment.jsonnet | 44 +++++++++++++++++ .../simple_website-jsonnet/ingress.jsonnet | 49 +++++++++++++++++++ .../simple_website-jsonnet/params.libsonnet | 6 +++ .../simple_website-jsonnet/service.jsonnet | 22 +++++++++ 4 files changed, 121 insertions(+) create mode 100644 kubernetes/simple_website-jsonnet/deployment.jsonnet create mode 100644 kubernetes/simple_website-jsonnet/ingress.jsonnet create mode 100644 kubernetes/simple_website-jsonnet/params.libsonnet create mode 100644 kubernetes/simple_website-jsonnet/service.jsonnet diff --git a/kubernetes/simple_website-jsonnet/deployment.jsonnet b/kubernetes/simple_website-jsonnet/deployment.jsonnet new file mode 100644 index 0000000..53f49ff --- /dev/null +++ b/kubernetes/simple_website-jsonnet/deployment.jsonnet @@ -0,0 +1,44 @@ +local params = import 'params.libsonnet'; +[ + { + apiVersion: 'apps/v1', + kind: 'Deployment', + metadata: { + name: params.name, + }, + spec: { + replicas: 1, + revisionHistoryLimit: 3, + selector: { + matchLabels: { + app: params.name, + }, + }, + template: { + metadata: { + labels: { + app: params.name, + }, + }, + spec: { + containers: [ + { + image: params.image, + name: params.name, + ports: [ + { + containerPort: 80, + }, + ], + }, + ], + imagePullSecrets: [ + { + name: 'registry-odit-services', + }, + ], + }, + }, + }, + }, +] \ No newline at end of file diff --git a/kubernetes/simple_website-jsonnet/ingress.jsonnet b/kubernetes/simple_website-jsonnet/ingress.jsonnet new file mode 100644 index 0000000..2148c18 --- /dev/null +++ b/kubernetes/simple_website-jsonnet/ingress.jsonnet @@ -0,0 +1,49 @@ +local params = import 'params.libsonnet'; + +[ + { + apiVersion: 'traefik.containo.us/v1alpha1', + kind: 'IngressRoute', + metadata: { + name: params.name, + }, + spec: { + entryPoints: [ + 'websecure', + ], + routes: [ + { + kind: 'Rule', + match: std.strReplace("Host(`domain`)", "domain", params.domain), + services: [ + { + name: params.name, + port: 80, + }, + ], + }, + ], + tls: { + secretName: params.name + "-cert", + }, + }, + }, + { + apiVersion: 'cert-manager.io/v1', + kind: 'Certificate', + metadata: { + name: params.name + "-cert", + }, + spec: { + commonName: params.domain, + secretName: params.name + "-cert", + dnsNames: [ + params.domain, + ], + issuerRef: { + name: 'letsencrypt-prod-dns', + kind: 'ClusterIssuer', + }, + }, + }, +] \ No newline at end of file diff --git a/kubernetes/simple_website-jsonnet/params.libsonnet b/kubernetes/simple_website-jsonnet/params.libsonnet new file mode 100644 index 0000000..07012ef --- /dev/null +++ b/kubernetes/simple_website-jsonnet/params.libsonnet @@ -0,0 +1,6 @@ +{ + image: "traefik/whoami", + name: "w-dev-odit-services", + containerPort: 80, + domain: "w.dev.odit.services" +} \ No newline at end of file diff --git a/kubernetes/simple_website-jsonnet/service.jsonnet b/kubernetes/simple_website-jsonnet/service.jsonnet new file mode 100644 index 0000000..2f8cba8 --- /dev/null +++ b/kubernetes/simple_website-jsonnet/service.jsonnet @@ -0,0 +1,22 @@ +local params = import 'params.libsonnet'; + +[ + { + apiVersion: 'v1', + kind: 'Service', + metadata: { + name: params.name, + }, + spec: { + ports: [ + { + port: 80, + targetPort: params.containerPort, + }, + ], + selector: { + app: params.name, + }, + }, + }, +] \ No newline at end of file