🎉 initial commit
This commit is contained in:
9
add-all-service-helm.sh
Executable file
9
add-all-service-helm.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
kubectl apply -f namespaces-create.yaml
|
||||||
|
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.6.0/cert-manager.yaml
|
||||||
|
kubectl apply -f service-postgres.yaml
|
||||||
|
kubectl apply -f service-mongodb.yaml
|
||||||
|
kubectl apply -f service-sourcegraph.yaml
|
||||||
|
kubectl apply -f ingress-sourcegraph.yaml
|
||||||
|
kubectl apply -f helm-vault-server.yaml
|
||||||
|
kubectl apply -f ingress-vault.yaml
|
||||||
|
kubectl apply -f helm-graviteeio-server.yaml
|
||||||
10
add-all-service.sh
Executable file
10
add-all-service.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
kubectl apply -f namespaces-create.yaml
|
||||||
|
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.6.0/cert-manager.yaml
|
||||||
|
kubectl apply -f ./bdd/service-postgres.yaml
|
||||||
|
kubectl apply -f ./bdd/service-mongodb.yaml
|
||||||
|
kubectl apply -f ./rabbitmq/service-rabbitmq.yaml
|
||||||
|
#kubectl apply -f ./sourcegrpah/service-sourcegraph.yaml
|
||||||
|
#kubectl apply -f ./sourcegraph/ingress-sourcegraph.yaml
|
||||||
|
kubectl apply -f ./vault/helm-vault-server.yaml
|
||||||
|
kubectl apply -f ./vault/ingress-vault.yaml
|
||||||
|
|
||||||
92
bdd/service-mongodb.yaml
Normal file
92
bdd/service-mongodb.yaml
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: mongo
|
||||||
|
provisioner: rancher.io/local-path
|
||||||
|
volumeBindingMode: WaitForFirstConsumer
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: mongo-pv-volume
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
type: local
|
||||||
|
spec:
|
||||||
|
storageClassName: mongo
|
||||||
|
capacity:
|
||||||
|
storage: 50Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
hostPath:
|
||||||
|
path: "/rca/mongodb/data"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
deploy: mongo
|
||||||
|
app.kubernetes.io/component: mongodb
|
||||||
|
name: mongo
|
||||||
|
namespace: database
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Gi
|
||||||
|
storageClassName: mongo
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: mongo-statefulset
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
app: mongo
|
||||||
|
spec:
|
||||||
|
serviceName: "mongo"
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: mongo
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: mongo
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: mongodb
|
||||||
|
image: mongo:3.4
|
||||||
|
#env:
|
||||||
|
# - name: MONGO_INITDB_ROOT_USERNAME
|
||||||
|
# value: admin
|
||||||
|
# - name: MONGO_INITDB_ROOT_PASSWORD
|
||||||
|
# value: password
|
||||||
|
ports:
|
||||||
|
- containerPort: 27017
|
||||||
|
name: mongodb
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data/db
|
||||||
|
name: mongo-pv-data
|
||||||
|
volumes:
|
||||||
|
- name: mongo-pv-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: mongo
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: mongo-service
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
app: mongo
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 27017
|
||||||
|
nodePort: 30010
|
||||||
|
name: mongo
|
||||||
|
type: NodePort
|
||||||
|
selector:
|
||||||
|
app: mongo
|
||||||
|
|
||||||
102
bdd/service-postgres.yaml
Normal file
102
bdd/service-postgres.yaml
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: postgres
|
||||||
|
provisioner: rancher.io/local-path
|
||||||
|
volumeBindingMode: WaitForFirstConsumer
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: task-pv-volume
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
type: local
|
||||||
|
spec:
|
||||||
|
storageClassName: postgres
|
||||||
|
capacity:
|
||||||
|
storage: 50Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
hostPath:
|
||||||
|
path: "/rca/postgres/data"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
deploy: postgres
|
||||||
|
app.kubernetes.io/component: postgres
|
||||||
|
name: postgres
|
||||||
|
namespace: database
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Gi
|
||||||
|
storageClassName: postgres
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: postgres-configuration
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
app: postgres
|
||||||
|
data:
|
||||||
|
POSTGRES_DB: postgres
|
||||||
|
POSTGRES_USER: rootrca
|
||||||
|
POSTGRES_PASSWORD: rca12345
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: postgres-statefulset
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
app: postgres
|
||||||
|
spec:
|
||||||
|
serviceName: "postgres"
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: postgres
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: postgres
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: postgres
|
||||||
|
image: postgres:12
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: postgres-configuration
|
||||||
|
ports:
|
||||||
|
- containerPort: 5432
|
||||||
|
name: postgresdb
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/postgresql/data
|
||||||
|
name: pv-data
|
||||||
|
volumes:
|
||||||
|
- name: pv-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: postgres
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: postgres-service
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
app: postgres
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 5432
|
||||||
|
nodePort: 30080
|
||||||
|
name: postgres
|
||||||
|
type: NodePort
|
||||||
|
selector:
|
||||||
|
app: postgres
|
||||||
|
|
||||||
1
create-k3d-outils.sh
Executable file
1
create-k3d-outils.sh
Executable file
@@ -0,0 +1 @@
|
|||||||
|
k3d cluster create outils --config outils-config-v3.yaml
|
||||||
12
dev-localhost-cert.yaml
Normal file
12
dev-localhost-cert.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: dev-localhost
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
secretName: dev-localhost-tls
|
||||||
|
issuerRef:
|
||||||
|
name: vault-issuer
|
||||||
|
commonName: dev.localhost
|
||||||
|
dnsNames:
|
||||||
|
- dev.localhost
|
||||||
15
enabled-kube-authent.sh
Normal file
15
enabled-kube-authent.sh
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#kubectl exec --stdin=true --tty=true vault-0 -- /bin/sh
|
||||||
|
vault auth enable kubernetes
|
||||||
|
|
||||||
|
vault write auth/kubernetes/config \
|
||||||
|
kubernetes_host="https://$KUBERNETES_PORT_443_TCP_ADDR:443" \
|
||||||
|
token_reviewer_jwt="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \
|
||||||
|
kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt \
|
||||||
|
issuer="https://kubernetes.default.svc.cluster.local"
|
||||||
|
|
||||||
|
vault write auth/kubernetes/role/issuer \
|
||||||
|
bound_service_account_names=issuer \
|
||||||
|
bound_service_account_namespaces=default \
|
||||||
|
policies=pki \
|
||||||
|
ttl=20m
|
||||||
|
|
||||||
18
enabled-pki.sh
Normal file
18
enabled-pki.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#kubectl exec --stdin=true --tty=true vault-0 -- /bin/sh
|
||||||
|
vault secrets enable pki
|
||||||
|
|
||||||
|
vault secrets tune -max-lease-ttl=8760h pki
|
||||||
|
|
||||||
|
vault write pki/root/generate/internal common_name=dev.localhost ttl=8760h
|
||||||
|
|
||||||
|
vault write pki/config/urls issuing_certificates="http://vault.default:8200/v1/pki/ca" crl_distribution_points="http://vault.default:8200/v1/pki/crl"
|
||||||
|
|
||||||
|
vault write pki/roles/dev-dot-localhost allowed_domains=dev.localhost allow_subdomains=true max_ttl=72h
|
||||||
|
|
||||||
|
vault policy write pki - <<EOF
|
||||||
|
path "pki*" { capabilities = ["read", "list"] }
|
||||||
|
path "pki/roles/dev-dot-localhost" { capabilities = ["create", "update"] }
|
||||||
|
path "pki/sign/dev-dot-localhost" { capabilities = ["create", "update"] }
|
||||||
|
path "pki/issue/dev-dot-localhost" { capabilities = ["create"] }
|
||||||
|
EOF
|
||||||
|
|
||||||
15
graviteeio/helm-graviteeio-server.yaml
Normal file
15
graviteeio/helm-graviteeio-server.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# see https://rancher.com/docs/k3s/latest/en/helm/
|
||||||
|
# see https://github.com/hashicorp/vault-helm
|
||||||
|
apiVersion: helm.cattle.io/v1
|
||||||
|
kind: HelmChart
|
||||||
|
metadata:
|
||||||
|
name: graviteeio
|
||||||
|
namespace: graviteeio
|
||||||
|
spec:
|
||||||
|
repo: https://helm.gravitee.io
|
||||||
|
chart: am
|
||||||
|
version: 1.0.33
|
||||||
|
targetNamespace: graviteeio
|
||||||
|
valuesContent: |-
|
||||||
|
mongo:
|
||||||
|
uri: mongodb://192.168.50.239:27017/graviteeam?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
|
||||||
14
graviteeio/ingress-graviteeio-gateway.yaml
Normal file
14
graviteeio/ingress-graviteeio-gateway.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: gatewayam
|
||||||
|
namespace: graviteeio
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
routes:
|
||||||
|
- match: Host(`dev.graviteeio.am`) && PathPrefix(`/am`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: gatewayam
|
||||||
|
port: 8092
|
||||||
14
graviteeio/ingress-graviteeio-management.yaml
Normal file
14
graviteeio/ingress-graviteeio-management.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: managementam
|
||||||
|
namespace: graviteeio
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
routes:
|
||||||
|
- match: Host(`dev.graviteeio.am`) && PathPrefix(`/am/management`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: managementam
|
||||||
|
port: 8093
|
||||||
14
graviteeio/ingress-graviteeio-webui.yaml
Normal file
14
graviteeio/ingress-graviteeio-webui.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: webuiam
|
||||||
|
namespace: graviteeio
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
routes:
|
||||||
|
- match: Host(`dev.graviteeio.am`) && PathPrefix(`/am/ui`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: webuiam
|
||||||
|
port: 80
|
||||||
44
graviteeio/service-gravitee-gateway.yaml
Normal file
44
graviteeio/service-gravitee-gateway.yaml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: gatewayam
|
||||||
|
namespace: graviteeio
|
||||||
|
labels:
|
||||||
|
app: gatewayam
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 8092
|
||||||
|
targetPort: 8092
|
||||||
|
selector:
|
||||||
|
app: gatewayam
|
||||||
|
type: LoadBalancer
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: gatewayam
|
||||||
|
namespace: graviteeio
|
||||||
|
labels:
|
||||||
|
app: gatewayam
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: gatewayam
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: gatewayam
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: gatewayam
|
||||||
|
image: graviteeio/am-gateway:2
|
||||||
|
env:
|
||||||
|
- name: gravitee_management_mongodb_uri
|
||||||
|
value: mongodb://192.168.50.206:27017/graviteeam?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
|
||||||
|
- name: gravitee_oauth2_mongodb_uri
|
||||||
|
value: mongodb://192.168.50.206:27017/graviteeam?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8092
|
||||||
44
graviteeio/service-gravitee-management.yaml
Normal file
44
graviteeio/service-gravitee-management.yaml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: managementam
|
||||||
|
namespace: graviteeio
|
||||||
|
labels:
|
||||||
|
app: managementam
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 8093
|
||||||
|
targetPort: 8093
|
||||||
|
selector:
|
||||||
|
app: managementam
|
||||||
|
type: LoadBalancer
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: managementam
|
||||||
|
namespace: graviteeio
|
||||||
|
labels:
|
||||||
|
app: managementam
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: managementam
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: managementam
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: managementam
|
||||||
|
image: graviteeio/am-management-api:2
|
||||||
|
env:
|
||||||
|
- name: gravitee_management_mongodb_uri
|
||||||
|
value: mongodb://192.168.50.206:27017/graviteeam?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
|
||||||
|
- name: gravitee_oauth2_mongodb_uri
|
||||||
|
value: mongodb://192.168.50.206:27017/graviteeam?serverSelectionTimeoutMS=5000&connectTimeoutMS=5000&socketTimeoutMS=5000
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8093
|
||||||
44
graviteeio/service-gravitee-webui.yaml
Normal file
44
graviteeio/service-gravitee-webui.yaml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: webuiam
|
||||||
|
namespace: graviteeio
|
||||||
|
labels:
|
||||||
|
app: webuiam
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: webuiam
|
||||||
|
type: LoadBalancer
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: webuiam
|
||||||
|
namespace: graviteeio
|
||||||
|
labels:
|
||||||
|
app: webuiam
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: webuiam
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: webuiam
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: webuiam
|
||||||
|
image: graviteeio/am-management-ui:2
|
||||||
|
env:
|
||||||
|
- name: MGMT_API_URL
|
||||||
|
value: http://dev.graviteeio.am/am
|
||||||
|
- name: MGMT_UI_URL
|
||||||
|
value: http://dev.graviteeio.am/am/ui
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 80
|
||||||
26
init-issuer.sh
Normal file
26
init-issuer.sh
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
kubectl create serviceaccount issuer
|
||||||
|
|
||||||
|
kubectl get secrets
|
||||||
|
|
||||||
|
ISSUER_SECRET_REF=$(kubectl get serviceaccount issuer -o json | jq -r ".secrets[].name")
|
||||||
|
|
||||||
|
cat > vault-issuer.yaml <<EOF
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Issuer
|
||||||
|
metadata:
|
||||||
|
name: vault-issuer
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
vault:
|
||||||
|
server: http://vault.default
|
||||||
|
path: pki/sign/dev-dot-localhost
|
||||||
|
auth:
|
||||||
|
kubernetes:
|
||||||
|
mountPath: /v1/auth/kubernetes
|
||||||
|
role: issuer
|
||||||
|
secretRef:
|
||||||
|
name: $ISSUER_SECRET_REF
|
||||||
|
key: token
|
||||||
|
EOF
|
||||||
|
|
||||||
|
kubectl apply --filename vault-issuer.yaml
|
||||||
0
init-keys.json
Normal file
0
init-keys.json
Normal file
7
k3d-default.yaml
Normal file
7
k3d-default.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
apiVersion: k3d.io/v1alpha3
|
||||||
|
kind: Simple
|
||||||
|
name: k3s-default
|
||||||
|
servers: 1
|
||||||
|
agents: 0
|
||||||
|
image: docker.io/rancher/k3s:v1.21.5-k3s2
|
||||||
34
namespaces-create.yaml
Normal file
34
namespaces-create.yaml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: outils
|
||||||
|
labels:
|
||||||
|
name: outils
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: database
|
||||||
|
labels:
|
||||||
|
name: database
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: traefik
|
||||||
|
labels:
|
||||||
|
name: traefik
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: vault
|
||||||
|
labels:
|
||||||
|
name: vault
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: graviteeio
|
||||||
|
labels:
|
||||||
|
name: graviteeio
|
||||||
60
outils-config-v3.yaml
Normal file
60
outils-config-v3.yaml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
kind: Simple
|
||||||
|
apiVersion: k3d.io/v1alpha3
|
||||||
|
name: outils
|
||||||
|
servers: 1
|
||||||
|
agents: 2
|
||||||
|
kubeAPI:
|
||||||
|
host: kubernetes.api.server
|
||||||
|
hostIP: 127.0.0.1
|
||||||
|
hostPort: "6443"
|
||||||
|
volumes:
|
||||||
|
#- volume: /home/ladro/ldrogou/projets/cluster/outils/helm-vault-server.yaml:/var/lib/rancher/k3s/server/manifests/helm-vault-server.yaml
|
||||||
|
# nodeFilters:
|
||||||
|
# - server:0
|
||||||
|
- volume: /rca/mongodb/data:/rca/mongodb/data
|
||||||
|
nodeFilters:
|
||||||
|
- server:0
|
||||||
|
- agent:*
|
||||||
|
- volume: /rca/postgres/data:/rca/postgres/data
|
||||||
|
nodeFilters:
|
||||||
|
- server:0
|
||||||
|
- agent:*
|
||||||
|
- volume: /rca/sourcegraph/config:/rca/sourcegraph/config
|
||||||
|
nodeFilters:
|
||||||
|
- server:0
|
||||||
|
- agent:*
|
||||||
|
- volume: /rca/sourcegraph/data:/rca/sourcegraph/data
|
||||||
|
nodeFilters:
|
||||||
|
- server:0
|
||||||
|
- agent:*
|
||||||
|
ports:
|
||||||
|
- port: 81:80
|
||||||
|
nodeFilters:
|
||||||
|
- loadbalancer
|
||||||
|
- port: 444:443
|
||||||
|
nodeFilters:
|
||||||
|
- loadbalancer
|
||||||
|
- port: 5433:30080
|
||||||
|
nodeFilters:
|
||||||
|
- server:0
|
||||||
|
- port: 27017:30010
|
||||||
|
nodeFilters:
|
||||||
|
- server:0
|
||||||
|
- port: 5672:30082
|
||||||
|
nodeFilters:
|
||||||
|
- server:0
|
||||||
|
- port: 15672:30083
|
||||||
|
nodeFilters:
|
||||||
|
- server:0
|
||||||
|
options:
|
||||||
|
k3d:
|
||||||
|
wait: true
|
||||||
|
timeout: 1m0s
|
||||||
|
disableLoadbalancer: false
|
||||||
|
disableImageVolume: false
|
||||||
|
disableRollback: false
|
||||||
|
k3s: {}
|
||||||
|
kubeconfig:
|
||||||
|
updateDefaultKubeconfig: true
|
||||||
|
switchCurrentContext: true
|
||||||
|
runtime: {}
|
||||||
49
rabbitmq/service-rabbitmq.yaml
Normal file
49
rabbitmq/service-rabbitmq.yaml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: rabbitmq-statefulset
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
app: rabbitmq
|
||||||
|
spec:
|
||||||
|
serviceName: "rabbitmq"
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: rabbitmq
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: rabbitmq
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: rabbitmq
|
||||||
|
image: rabbitmq:3-management-alpine
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: rabbitmq-configuration
|
||||||
|
ports:
|
||||||
|
- containerPort: 5672
|
||||||
|
name: rabbitmqdb
|
||||||
|
- containerPort: 15672
|
||||||
|
name: rabbitmqman
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: rabbitmq-service
|
||||||
|
namespace: database
|
||||||
|
labels:
|
||||||
|
app: rabbitmq
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 5432
|
||||||
|
nodePort: 30082
|
||||||
|
name: rabbitmq
|
||||||
|
- port: 15672
|
||||||
|
nodePort: 30083
|
||||||
|
name: rabbitmqman
|
||||||
|
type: NodePort
|
||||||
|
selector:
|
||||||
|
app: rabbitmq
|
||||||
|
|
||||||
14
sourcegraph/ingress-sourcegraph.yaml
Normal file
14
sourcegraph/ingress-sourcegraph.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: sourcegraph
|
||||||
|
namespace: outils
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`sourcegraph.dev.localhost`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: sourcegraph
|
||||||
|
port: 7080
|
||||||
137
sourcegraph/service-sourcegraph.yaml
Normal file
137
sourcegraph/service-sourcegraph.yaml
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: k3d-sourcegraph-data
|
||||||
|
provisioner: rancher.io/local-path
|
||||||
|
volumeBindingMode: WaitForFirstConsumer
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: sourcegraph-pv-data
|
||||||
|
namespace: outils
|
||||||
|
labels:
|
||||||
|
type: local
|
||||||
|
spec:
|
||||||
|
storageClassName: k3d-sourcegraph-data
|
||||||
|
capacity:
|
||||||
|
storage: 10Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
hostPath:
|
||||||
|
path: "/rca/sourcegraph/data"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
deploy: sourcegraph-pvc-data
|
||||||
|
sourcegraph-resource-requires: no-cluster-admin
|
||||||
|
app.kubernetes.io/component: sourcegraph
|
||||||
|
name: sourcegraph-data
|
||||||
|
namespace: outils
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
storageClassName: k3d-sourcegraph-data
|
||||||
|
---
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: StorageClass
|
||||||
|
metadata:
|
||||||
|
name: k3d-sourcegraph-config
|
||||||
|
provisioner: rancher.io/local-path
|
||||||
|
volumeBindingMode: WaitForFirstConsumer
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: sourcegraph-pv-config
|
||||||
|
namespace: outils
|
||||||
|
labels:
|
||||||
|
type: local
|
||||||
|
spec:
|
||||||
|
storageClassName: k3d-sourcegraph-config
|
||||||
|
capacity:
|
||||||
|
storage: 2Gi
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
hostPath:
|
||||||
|
path: "/rca/sourcegraph/config"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
deploy: sourcegraph-pvc-config
|
||||||
|
sourcegraph-resource-requires: no-cluster-admin
|
||||||
|
app.kubernetes.io/component: sourcegraph
|
||||||
|
name: sourcegraph-config
|
||||||
|
namespace: outils
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 2Gi
|
||||||
|
storageClassName: k3d-sourcegraph-config
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: sourcegraph
|
||||||
|
namespace: outils
|
||||||
|
labels:
|
||||||
|
app: sourcegraph
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 7080
|
||||||
|
targetPort: 7080
|
||||||
|
selector:
|
||||||
|
app: sourcegraph
|
||||||
|
type: LoadBalancer
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: sourcegraph
|
||||||
|
namespace: outils
|
||||||
|
labels:
|
||||||
|
app: sourcegraph
|
||||||
|
spec:
|
||||||
|
replicas: 0
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: sourcegraph
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sourcegraph
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: sourcegraph
|
||||||
|
image: sourcegraph/server:3.36.1
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 7080
|
||||||
|
- name: https
|
||||||
|
containerPort: 7443
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: "/var/opt/sourcegraph"
|
||||||
|
name: sourcegraph-data
|
||||||
|
- mountPath: "/etc/sourcegraph"
|
||||||
|
name: sourcegraph-config
|
||||||
|
hostAliases:
|
||||||
|
- ip: 10.0.10.180
|
||||||
|
hostnames:
|
||||||
|
- git.int.rcacloud.it
|
||||||
|
volumes:
|
||||||
|
- name: sourcegraph-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: sourcegraph-data
|
||||||
|
- name: sourcegraph-config
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: sourcegraph-config
|
||||||
15
vault/helm-vault-server.yaml
Normal file
15
vault/helm-vault-server.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# see https://rancher.com/docs/k3s/latest/en/helm/
|
||||||
|
# see https://github.com/hashicorp/vault-helm
|
||||||
|
apiVersion: helm.cattle.io/v1
|
||||||
|
kind: HelmChart
|
||||||
|
metadata:
|
||||||
|
name: vault
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
repo: https://helm.releases.hashicorp.com
|
||||||
|
chart: vault
|
||||||
|
version: 0.17.1
|
||||||
|
targetNamespace: default
|
||||||
|
valuesContent: |-
|
||||||
|
injector:
|
||||||
|
enabled: false
|
||||||
14
vault/ingress-vault.yaml
Normal file
14
vault/ingress-vault.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: traefik.containo.us/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: vault-internal
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`vault.dev.localhost`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: vault-internal
|
||||||
|
port: 8200
|
||||||
2
vault/init-vault.sh
Executable file
2
vault/init-vault.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
kubectl exec vault-0 -- vault operator init -key-shares=1 -key-threshold=1 -format=json > init-keys.json
|
||||||
|
./unseal-vault.sh
|
||||||
16
vault/issuer-vault.yaml
Normal file
16
vault/issuer-vault.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Issuer
|
||||||
|
metadata:
|
||||||
|
name: vault-issuer
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
vault:
|
||||||
|
server: http://vault.default:8200
|
||||||
|
path: pki/sign/dev-dot-localhost
|
||||||
|
auth:
|
||||||
|
kubernetes:
|
||||||
|
mountPath: /v1/auth/kubernetes
|
||||||
|
role: issuer
|
||||||
|
secretRef:
|
||||||
|
name: issuer-token-sh68l
|
||||||
|
key: token
|
||||||
8
vault/unseal-vault.sh
Executable file
8
vault/unseal-vault.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
cat init-keys.json | jq -r ".unseal_keys_b64[]"
|
||||||
|
VAULT_UNSEAL_KEY=$(cat init-keys.json | jq -r ".unseal_keys_b64[]")
|
||||||
|
kubectl exec vault-0 -- vault operator unseal $VAULT_UNSEAL_KEY
|
||||||
|
kubectl get pods
|
||||||
|
cat init-keys.json | jq -r ".root_token"
|
||||||
|
VAULT_ROOT_TOKEN=$(cat init-keys.json | jq -r ".root_token")
|
||||||
|
kubectl exec vault-0 -- vault login $VAULT_ROOT_TOKEN
|
||||||
|
|
||||||
16
vault/vault-issuer.yaml
Normal file
16
vault/vault-issuer.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Issuer
|
||||||
|
metadata:
|
||||||
|
name: vault-issuer
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
vault:
|
||||||
|
server: http://vault.default:8200
|
||||||
|
path: pki/role/dev-dot-localhost
|
||||||
|
auth:
|
||||||
|
kubernetes:
|
||||||
|
mountPath: /v1/auth/kubernetes
|
||||||
|
role: issuer
|
||||||
|
secretRef:
|
||||||
|
name: issuer-token-xhgk8
|
||||||
|
key: token
|
||||||
Reference in New Issue
Block a user