Skip to content

Commit

Permalink
chore(kapitan/examples): Add nginx jsonnet example
Browse files Browse the repository at this point in the history
Signed-off-by: harsh jain <harshjniitr@gmail.com>
  • Loading branch information
harsh-98 committed Apr 11, 2019
1 parent d9f2d82 commit 81f4400
Show file tree
Hide file tree
Showing 36 changed files with 334 additions and 36 deletions.
7 changes: 7 additions & 0 deletions examples/kubernetes/compiled/minikube-nginx-jsonnet/README.md
@@ -0,0 +1,7 @@

# Welcome to the README!

Target *minikube-nginx-jsonnet* is running:

* 1 replicas of *nginx* running nginx image nginx:1:15.8
* on cluster minikube
@@ -0,0 +1,36 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations: {}
labels:
name: nginx
name: nginx
namespace: minikube-nginx-jsonnet
spec:
minReadySeconds: 30
replicas: 1
revisionHistoryLimit: 10
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
annotations: {}
labels:
name: nginx
spec:
containers:
- args: []
env: []
image: nginx:1:15.8
imagePullPolicy: Always
name: nginx
ports:
- containerPort: 80
name: http
volumeMounts: []
imagePullSecrets: []
initContainers: []
volumes: []
@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
annotations: {}
labels:
name: nginx
name: nginx
namespace: minikube-nginx-jsonnet
spec:
loadBalancerSourceRanges: []
ports:
- name: http
port: 80
targetPort: http
selector:
name: nginx
type: NodePort
@@ -0,0 +1,11 @@
#!/bin/bash -e
DIR=$(dirname ${BASH_SOURCE[0]})

# Create namespace before anything else
kubectl apply -f ${DIR}/pre-deploy/namespace.yml

for SECTION in manifests
do
echo "## run kubectl apply for ${SECTION}"
kubectl apply -f ${DIR}/${SECTION}/ | column -t
done
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Namespace
metadata:
annotations: {}
labels:
name: minikube-nginx-jsonnet
name: minikube-nginx-jsonnet
namespace: minikube-nginx-jsonnet
spec: {}
@@ -0,0 +1,8 @@
apiVersion: v1
kind: ServiceAccount
metadata:
annotations: {}
labels:
name: default
name: default
namespace: minikube-nginx-jsonnet
7 changes: 7 additions & 0 deletions examples/kubernetes/compiled/minikube-nginx-kadet/README.md
@@ -0,0 +1,7 @@

# Welcome to the README!

Target *minikube-nginx-kadet* is running:

* 2 replicas of *nginx* running nginx image nginx:1:15.8
* on cluster minikube
@@ -1,7 +1,7 @@
kind: Deployment
metadata:
name: nginx
namespace: minikube-nginx
namespace: minikube-nginx-kadet
spec:
replicas: 1
revisionHistoryLimit: 10
Expand Down
Expand Up @@ -4,7 +4,7 @@ metadata:
labels:
app: nginx
name: nginx
namespace: minikube-nginx
namespace: minikube-nginx-kadet
spec:
ports:
- name: http
Expand Down
11 changes: 11 additions & 0 deletions examples/kubernetes/compiled/minikube-nginx-kadet/nginx-deploy.sh
@@ -0,0 +1,11 @@
#!/bin/bash -e
DIR=$(dirname ${BASH_SOURCE[0]})

# Create namespace before anything else
kubectl apply -f ${DIR}/pre-deploy/namespace.yml

for SECTION in manifests
do
echo "## run kubectl apply for ${SECTION}"
kubectl apply -f ${DIR}/${SECTION}/ | column -t
done
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Namespace
metadata:
annotations: {}
labels:
name: minikube-nginx-kadet
name: minikube-nginx-kadet
namespace: minikube-nginx-kadet
spec: {}
Expand Up @@ -5,4 +5,4 @@ metadata:
labels:
name: default
name: default
namespace: minikube-nginx
namespace: minikube-nginx-kadet

This file was deleted.

11 changes: 11 additions & 0 deletions examples/kubernetes/components/nginx-deploy.sh
@@ -0,0 +1,11 @@
#!/bin/bash -e
DIR=$(dirname ${BASH_SOURCE[0]})

# Create namespace before anything else
kubectl apply -f ${DIR}/pre-deploy/namespace.yml

for SECTION in manifests
do
echo "## run kubectl apply for ${SECTION}"
kubectl apply -f ${DIR}/${SECTION}/ | column -t
done
35 changes: 35 additions & 0 deletions examples/kubernetes/components/nginx-jsonnet/main.jsonnet
@@ -0,0 +1,35 @@
local kube = import "lib/kube.libjsonnet";
local kap = import "lib/kapitan.libjsonnet";
local inv = kap.inventory();
local p = inv.parameters;

local myContainers = kube.Container("nginx") {
image: inv.parameters.nginx.image,
ports_+: {
http: {containerPort: 80}
},
};

local deployment = kube.Deployment("nginx") {
spec+: {
replicas: inv.parameters.nginx.replicas,
template+: {
spec+: {
containers_+: {
nginx: myContainers
},
}
}
}
};

local svc = kube.Service("nginx") {
target_pod:: deployment.spec.template,
target_container_name:: "nginx",
type: "NodePort",
};

{
"app-service": svc,
"app-deployment": deployment,
}
8 changes: 8 additions & 0 deletions examples/kubernetes/docs/nginx/README.md
@@ -0,0 +1,8 @@
{% set i = inventory.parameters %}

# Welcome to the README!

Target *{{ i.target_name }}* is running:

* {{ i.nginx.replicas }} replicas of *nginx* running nginx image {{ i.nginx.image }}
* on cluster {{ i.cluster.name }}
13 changes: 13 additions & 0 deletions examples/kubernetes/inventory/classes/component/nginx-common.yml
@@ -0,0 +1,13 @@
parameters:
nginx:
image: nginx:1:15.8
kapitan:
compile:
- output_path: .
input_type: jinja2
input_paths:
- docs/nginx/README.md
- output_path: .
input_type: jinja2
input_paths:
- components/nginx-deploy.sh
10 changes: 10 additions & 0 deletions examples/kubernetes/inventory/classes/component/nginx-jsonnet.yml
@@ -0,0 +1,10 @@
parameters:
nginx:
replicas: 1
kapitan:
compile:
- output_path: manifests
output_type: yaml
input_type: jsonnet
input_paths:
- components/nginx-jsonnet/main.jsonnet
@@ -1,10 +1,10 @@
parameters:
nginx:
image: nginx:1:15.8
replicas: 2
kapitan:
compile:
- output_path: manifests
input_type: kadet
output_type: yaml
input_paths:
- components/nginx/
- components/nginx-kadet/
@@ -0,0 +1,9 @@
classes:
- common
- cluster.minikube
- component.nginx-jsonnet
- component.nginx-common

parameters:
target_name: minikube-nginx-jsonnet
namespace: ${target_name}
10 changes: 10 additions & 0 deletions examples/kubernetes/inventory/targets/minikube-nginx-kadet.yml
@@ -0,0 +1,10 @@
classes:
- common
- cluster.minikube
- component.nginx-kadet
- component.nginx-common

parameters:
target_name: minikube-nginx-kadet
namespace: ${target_name}

10 changes: 0 additions & 10 deletions examples/kubernetes/inventory/targets/minikube-nginx.yml

This file was deleted.

@@ -0,0 +1,7 @@

# Welcome to the README!

Target *minikube-nginx-jsonnet* is running:

* 1 replicas of *nginx* running nginx image nginx:1:15.8
* on cluster minikube
@@ -0,0 +1,36 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations: {}
labels:
name: nginx
name: nginx
namespace: minikube-nginx-jsonnet
spec:
minReadySeconds: 30
replicas: 1
revisionHistoryLimit: 10
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
annotations: {}
labels:
name: nginx
spec:
containers:
- args: []
env: []
image: nginx:1:15.8
imagePullPolicy: Always
name: nginx
ports:
- containerPort: 80
name: http
volumeMounts: []
imagePullSecrets: []
initContainers: []
volumes: []
@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
annotations: {}
labels:
name: nginx
name: nginx
namespace: minikube-nginx-jsonnet
spec:
loadBalancerSourceRanges: []
ports:
- name: http
port: 80
targetPort: http
selector:
name: nginx
type: NodePort
@@ -0,0 +1,11 @@
#!/bin/bash -e
DIR=$(dirname ${BASH_SOURCE[0]})

# Create namespace before anything else
kubectl apply -f ${DIR}/pre-deploy/namespace.yml

for SECTION in manifests
do
echo "## run kubectl apply for ${SECTION}"
kubectl apply -f ${DIR}/${SECTION}/ | column -t
done
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Namespace
metadata:
annotations: {}
labels:
name: minikube-nginx-jsonnet
name: minikube-nginx-jsonnet
namespace: minikube-nginx-jsonnet
spec: {}
@@ -0,0 +1,8 @@
apiVersion: v1
kind: ServiceAccount
metadata:
annotations: {}
labels:
name: default
name: default
namespace: minikube-nginx-jsonnet
7 changes: 7 additions & 0 deletions tests/test_kubernetes_compiled/minikube-nginx-kadet/README.md
@@ -0,0 +1,7 @@

# Welcome to the README!

Target *minikube-nginx-kadet* is running:

* 2 replicas of *nginx* running nginx image nginx:1:15.8
* on cluster minikube

0 comments on commit 81f4400

Please sign in to comment.