Rewrite to jsonnet because reasons
parent
da29cc90c6
commit
66750faf92
@ -1,16 +0,0 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- postgres.yaml
|
||||
- rabbitmq.yaml
|
||||
|
||||
configMapGenerator:
|
||||
- name: rabbitmq-config
|
||||
files:
|
||||
- enabled_plugins=etc/rabbitmq/enabled_plugins
|
||||
- rabbitmq.conf=etc/rabbitmq/rabbitmq.conf
|
||||
- rmq_schema.json=etc/rabbitmq/rmq_schema.json
|
||||
- name: postgres-dbinit
|
||||
files:
|
||||
- piccdb.sql
|
@ -1,57 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: postgres
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
selector:
|
||||
app: postgres
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 5432
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: postgres
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: postgres
|
||||
serviceName: "postgres"
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: postgres
|
||||
spec:
|
||||
containers:
|
||||
- name: postgres
|
||||
image: docker.io/postgres:13
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
name: db
|
||||
env:
|
||||
- name: POSTGRES_DB
|
||||
value: picc
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgres-password
|
||||
key: password
|
||||
volumeMounts:
|
||||
- name: postgres-data
|
||||
mountPath: /var/lib/postgresql/data
|
||||
- name: dbinit
|
||||
mountPath: /docker-entrypoint-initdb.d
|
||||
volumes:
|
||||
- name: dbinit
|
||||
configMap:
|
||||
name: postgres-dbinit
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: postgres-data
|
||||
spec:
|
||||
accessModes: [ "ReadWriteOnce" ]
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
@ -1,53 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: rabbitmq
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
selector:
|
||||
app: rabbitmq
|
||||
ports:
|
||||
- name: amqp
|
||||
port: 5672
|
||||
- name: web
|
||||
port: 15672
|
||||
- name: mqtt
|
||||
port: 1883
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: rabbitmq
|
||||
labels:
|
||||
app: rabbitmq
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: rabbitmq
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: rabbitmq
|
||||
spec:
|
||||
containers:
|
||||
- name: rabbitmq
|
||||
image: docker.io/rabbitmq:3
|
||||
ports:
|
||||
- containerPort: 5672
|
||||
- containerPort: 15672
|
||||
- containerPort: 1883
|
||||
volumeMounts:
|
||||
- mountPath: "/etc/rabbitmq"
|
||||
name: config
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: rabbitmq-config
|
||||
items:
|
||||
- key: "enabled_plugins"
|
||||
path: "enabled_plugins"
|
||||
- key: "rabbitmq.conf"
|
||||
path: "rabbitmq.conf"
|
||||
- key: "rmq_schema.json"
|
||||
path: "rmq_schema.json"
|
@ -0,0 +1,4 @@
|
||||
function(namespace){
|
||||
picc_app: import "picc_app.jsonnet",
|
||||
picc_config: (import "picc_config.jsonnet")(namespace),
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
{
|
||||
apiVersion: "apps/v1",
|
||||
kind: "Deployment",
|
||||
metadata: {
|
||||
name: "picc",
|
||||
labels: {
|
||||
app: "picc"
|
||||
}
|
||||
},
|
||||
spec: {
|
||||
replicas: 1,
|
||||
selector: {
|
||||
matchLabels: {
|
||||
app: "picc"
|
||||
}
|
||||
},
|
||||
template: {
|
||||
metadata: {
|
||||
labels: {
|
||||
app: "picc"
|
||||
}
|
||||
},
|
||||
spec: {
|
||||
containers: [
|
||||
{
|
||||
name: "picc",
|
||||
image: "docker.raptorpond.com/picc",
|
||||
env: [
|
||||
{
|
||||
name: "RABBITMQ_HOST",
|
||||
valueFrom: {
|
||||
configMapKeyRef: {
|
||||
name: "picc-config",
|
||||
key: "rabbitmq_host"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "RABBITMQ_PORT",
|
||||
valueFrom: {
|
||||
configMapKeyRef: {
|
||||
name: "picc-config",
|
||||
key: "rabbitmq_port"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "POSTGRES_HOST",
|
||||
valueFrom: {
|
||||
configMapKeyRef: {
|
||||
name: "picc-config",
|
||||
key: "postgres_host"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "POSTGRES_PASSWORD",
|
||||
valueFrom: {
|
||||
secretKeyRef: {
|
||||
name: "postgres-password",
|
||||
key: "password"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
function(namespace){
|
||||
kind: "ConfigMap",
|
||||
apiVersion: "v1",
|
||||
metadata: {
|
||||
name: "picc-config"
|
||||
},
|
||||
data: {
|
||||
rabbitmq_host: "rabbitmq.%s" % [namespace],
|
||||
rabbitmq_port: "5672",
|
||||
postgres_host: "postgres.%s" % [namespace]
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
local utils = import "../../lib/picc-k8s.libsonnet";
|
||||
|
||||
function(password=null, ip=null){
|
||||
postgres_app: import "postgres_app.jsonnet",
|
||||
postgres_service: utils.service(name="postgres", ports=[{name: "postgres", protocol: "TCP", port:5432}], ip=ip),
|
||||
postgres_password:
|
||||
if password != null then
|
||||
(import "postgres_password.jsonnet")(password)
|
||||
else
|
||||
(import "postgres_password.jsonnet")(),
|
||||
postgres_dbinit: import "postgres_dbinit.jsonnet"
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
{
|
||||
apiVersion: "apps/v1",
|
||||
kind: "StatefulSet",
|
||||
metadata: {
|
||||
name: "postgres"
|
||||
},
|
||||
spec: {
|
||||
selector: {
|
||||
matchLabels: {
|
||||
app: "postgres"
|
||||
}
|
||||
},
|
||||
serviceName: "postgres",
|
||||
template: {
|
||||
metadata:{
|
||||
labels: {
|
||||
app: "postgres"
|
||||
}
|
||||
},
|
||||
spec: {
|
||||
containers: [
|
||||
{
|
||||
name: "postgres",
|
||||
image: "docker.io/postgres:13",
|
||||
ports: [
|
||||
{containerPort: 5432,
|
||||
name: "db"}
|
||||
],
|
||||
env: [
|
||||
{
|
||||
name: "POSTGRES_DB",
|
||||
value: "picc"
|
||||
},
|
||||
{
|
||||
name: "POSTGRES_PASSWORD",
|
||||
valueFrom: {
|
||||
secretKeyRef: {
|
||||
name: "postgres-password",
|
||||
key: "password"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
volumeMounts: [
|
||||
{
|
||||
name: "postgres-data",
|
||||
mountPath: "/var/lib/postgresql/data"
|
||||
},
|
||||
{
|
||||
name: "dbinit",
|
||||
mountPath: "/docker-entrypoint-initdb.d"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
volumes: [
|
||||
{
|
||||
name: "dbinit",
|
||||
configMap: {
|
||||
name: "postgres-dbinit"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
volumeClaimTemplates : [{
|
||||
metadata: {
|
||||
name: "postgres-data"
|
||||
},
|
||||
spec: {
|
||||
accessModes: ["ReadWriteOnce"],
|
||||
resources: {
|
||||
requests: {
|
||||
storage: "100Mi"
|
||||
}
|
||||
}
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
kind: "ConfigMap",
|
||||
apiVersion: "v1",
|
||||
metadata: {
|
||||
name: "postgres-dbinit"
|
||||
},
|
||||
data: {
|
||||
"piccdb.sql": importstr "piccdb.sql"
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
function(password = "piccpass") {
|
||||
kind: "Secret",
|
||||
apiVersion: "v1",
|
||||
metadata: {
|
||||
name: "postgres-password"
|
||||
},
|
||||
data: {
|
||||
"password": std.base64(password)
|
||||
},
|
||||
type: "Opaque"
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
local utils = import "../../lib/picc-k8s.libsonnet";
|
||||
|
||||
function(ip=null){
|
||||
rabbitmq_app: import "rabbitmq_app.jsonnet",
|
||||
rabbitmq_service: utils.service(name="rabbitmq",
|
||||
ports=[{name: "amqp", port: 5672},
|
||||
{name: "web", port: 15672},
|
||||
{name: "mqtt", port: 1883}],
|
||||
ip=ip),
|
||||
rabbitmq_conf: import "rabbitmq_config.jsonnet"
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
{
|
||||
apiVersion: "apps/v1",
|
||||
kind: "Deployment",
|
||||
metadata: {
|
||||
name: "rabbitmq",
|
||||
labels: {
|
||||
app: "rabbitmq"
|
||||
}
|
||||
},
|
||||
spec: {
|
||||
replicas: 1,
|
||||
selector: {
|
||||
matchLabels: {
|
||||
app: "rabbitmq"
|
||||
}
|
||||
},
|
||||
template: {
|
||||
metadata: {
|
||||
labels: {
|
||||
app: "rabbitmq"
|
||||
}
|
||||
},
|
||||
spec: {
|
||||
containers: [
|
||||
{
|
||||
name: "rabbitmq",
|
||||
image: "docker.io/rabbitmq:3",
|
||||
ports: [
|
||||
{containerPort: 5672},
|
||||
{containerPort: 15672},
|
||||
{containerPort: 1883}
|
||||
],
|
||||
volumeMounts: [
|
||||
{
|
||||
mountPath: "/etc/rabbitmq",
|
||||
name: "config"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
volumes: [
|
||||
{
|
||||
name: "config",
|
||||
configMap: {
|
||||
name: "rabbitmq-config",
|
||||
items: [
|
||||
{key: "enabled_plugins",
|
||||
path: "enabled_plugins"},
|
||||
{key: "rabbitmq.conf",
|
||||
path: "rabbitmq.conf"},
|
||||
{key: "rmq_schema.json",
|
||||
path: "rmq_schema.json"}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
kind: "ConfigMap",
|
||||
apiVersion: "v1",
|
||||
metadata: {
|
||||
name: "rabbitmq-config"
|
||||
},
|
||||
data: {
|
||||
"enabled_plugins": importstr "etc/rabbitmq/enabled_plugins",
|
||||
"rabbitmq.conf": importstr "etc/rabbitmq/rabbitmq.conf",
|
||||
"rmq_schema.json": importstr "etc/rabbitmq/rmq_schema.json"
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
{
|
||||
addNamespace(manifest, namespace)::
|
||||
manifest +
|
||||
{
|
||||
metadata+: {
|
||||
namespace: namespace
|
||||
}
|
||||
},
|
||||
|
||||
createNamespace(namespace)::
|
||||
{
|
||||
apiVersion: "v1",
|
||||
kind: "Namespace",
|
||||
metadata: {
|
||||
name: namespace
|
||||
}
|
||||
},
|
||||
|
||||
service(name, ports, ip=null)::
|
||||
{
|
||||
apiVersion: "v1",
|
||||
kind: "Service",
|
||||
metadata: {
|
||||
name: name
|
||||
},
|
||||
spec: {
|
||||
type: "LoadBalancer",
|
||||
selector: {
|
||||
app: name
|
||||
},
|
||||
ports: ports,
|
||||
[if ip != null then "loadBalancerIP"]: ip
|
||||
}
|
||||
}
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
namespace: picc-dev
|
||||
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- ../../base
|
||||
|
||||
secretGenerator:
|
||||
- name: postgres-password
|
||||
literals:
|
||||
- password=piccpass
|
||||
|
||||
patches:
|
||||
- patch: |-
|
||||
- op: add
|
||||
path: /spec/loadBalancerIP
|
||||
value: 192.168.2.201
|
||||
target:
|
||||
kind: Service
|
||||
name: postgres
|
||||
- patch: |-
|
||||
- op: add
|
||||
path: /spec/loadBalancerIP
|
||||
value: 192.168.2.200
|
||||
target:
|
||||
kind: Service
|
||||
name: rabbitmq
|
@ -1,6 +0,0 @@
|
||||
kind: Namespace
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: picc-dev
|
||||
labels:
|
||||
name: picc-dev
|
@ -1,6 +0,0 @@
|
||||
kind: Namespace
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: picc-prod
|
||||
labels:
|
||||
name: picc-prod
|
@ -0,0 +1,13 @@
|
||||
local namespace="picc-dev";
|
||||
|
||||
local utils = import "../lib/picc-k8s.libsonnet";
|
||||
|
||||
local postgres = import "../deployments/postgres/postgres.jsonnet";
|
||||
local postgres_manifests = postgres(ip="192.168.2.201");
|
||||
|
||||
local rabbitmq = import "../deployments/rabbitmq/rabbitmq.jsonnet";
|
||||
local rabbitmq_manifests = rabbitmq(ip="192.168.2.200");
|
||||
|
||||
[utils.createNamespace(namespace),] +
|
||||
[utils.addNamespace(postgres_manifests[manifest], namespace) for manifest in std.objectFields(postgres_manifests)] +
|
||||
[utils.addNamespace(rabbitmq_manifests[manifest], namespace) for manifest in std.objectFields(rabbitmq_manifests)]
|
@ -0,0 +1,18 @@
|
||||
local namespace="picc-prod";
|
||||
|
||||
local utils = import "../lib/picc-k8s.libsonnet";
|
||||
|
||||
local postgres = import "../deployments/postgres/postgres.jsonnet";
|
||||
local rabbitmq = import "../deployments/rabbitmq/rabbitmq.jsonnet";
|
||||
local picc = import "../deployments/picc/picc.jsonnet";
|
||||
|
||||
function(postgres_password)
|
||||
|
||||
local postgres_manifests = postgres(password=postgres_password);
|
||||
local rabbitmq_manifests = rabbitmq();
|
||||
local picc_manifests = picc(namespace);
|
||||
|
||||
[utils.createNamespace(namespace),] +
|
||||
[utils.addNamespace(postgres_manifests[manifest], namespace) for manifest in std.objectFields(postgres_manifests)] +
|
||||
[utils.addNamespace(rabbitmq_manifests[manifest], namespace) for manifest in std.objectFields(rabbitmq_manifests)] +
|
||||
[utils.addNamespace(picc_manifests[manifest], namespace) for manifest in std.objectFields(picc_manifests)]
|
Loading…
Reference in New Issue