Skip to content

Instantly share code, notes, and snippets.

@hguerrero
Last active September 28, 2021 23:11
Show Gist options
  • Save hguerrero/d5bfc6e1e7cbb38c831b6029ec751c4b to your computer and use it in GitHub Desktop.
Save hguerrero/d5bfc6e1e7cbb38c831b6029ec751c4b to your computer and use it in GitHub Desktop.
apicurio studio k8s distro
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: apicuriodata
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4Gi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: apicurio-configmap
data:
keycloak-url: http://KEYCLOAK_URL/auth
apicurio-ui-logout-redirect-uri: /
apicurio-ui-hub-api-url: http://studio.127.0.0.1.nip.io/studio-api
apicurio-ui-editing-url: ws://ws.127.0.0.1.nip.io
apicurio-microcks-api-url: http://microcks.127.0.0.1.nip.io/api
apicurio-db-connection-url: jdbc:mysql://apicuriodb:3306/apicuriodb
apicurio-kc-client-id: apicurio-studio
apicurio-kc-realm: apicurio
apicurio-microcks-client-id: microcks-serviceaccount
apicurio-ui-feature-share-with-everyone: "true"
apicurio-ui-feature-microcks: "false"
---
apiVersion: v1
kind: Secret
metadata:
name: apicurio-secret
type: Opaque
data:
db-password: bXlzcWxwYXNzd29yZA==
db-root-password: bXlzcWxwYXNzd29yZA==
db-user: bXlzcWx1c2Vy
apicurio-kc-client-secret: YTEyMw==
apicurio-microcks-client-secret: YTEyMw==
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
module: apicurio-studio-db
name: apicurio-studio-db
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
module: apicurio-studio-db
template:
metadata:
labels:
module: apicurio-studio-db
spec:
containers:
- args:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
env:
- name: MYSQL_DATABASE
value: apicuriodb
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: apicurio-secret
key: db-password
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: apicurio-secret
key: db-root-password
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: apicurio-secret
key: db-user
image: percona:5.7
name: apicurio-studio-db
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-apicurio
restartPolicy: Always
volumes:
- name: mysql-apicurio
persistentVolumeClaim:
claimName: apicuriodata
- name: apicurio-secret
secret:
secretName: apicurio-secret
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
module: apicurio-studio-api
name: apicurio-studio-api
spec:
replicas: 1
selector:
matchLabels:
module: apicurio-studio-api
template:
metadata:
labels:
module: apicurio-studio-api
spec:
containers:
- env:
# - name: APICURIO_LOGGING_LEVEL
# value: debug
- name: APICURIO_DB_CONNECTION_URL
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-db-connection-url
- name: APICURIO_DB_DRIVER_NAME
value: mysql
- name: APICURIO_DB_INITIALIZE
value: "true"
- name: APICURIO_DB_PASSWORD
valueFrom:
secretKeyRef:
name: apicurio-secret
key: db-password
- name: APICURIO_DB_TYPE
value: mysql5
- name: APICURIO_DB_USER_NAME
valueFrom:
secretKeyRef:
name: apicurio-secret
key: db-user
- name: APICURIO_MICROCKS_API_URL
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-microcks-api-url
- name: APICURIO_MICROCKS_CLIENT_ID
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-microcks-client-id
- name: APICURIO_MICROCKS_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: apicurio-secret
key: apicurio-microcks-client-secret
- name: APICURIO_KC_AUTH_URL
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: keycloak-url
- name: APICURIO_KC_REALM
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-kc-realm
- name: APICURIO_KC_CLIENT_ID
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-kc-client-id
- name: APICURIO_KC_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: apicurio-secret
key: apicurio-kc-client-secret
- name: APICURIO_SHARE_FOR_EVERYONE
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-ui-feature-share-with-everyone
- name: JAVA_TOOL_OPTIONS
value: -Djava.net.preferIPv4Stack=true
image: 'apicurio/apicurio-studio-api'
name: apicurio-studio-api
ports:
- containerPort: 8080
restartPolicy: Always
volumes:
- name: apicurio-secret
secret:
secretName: apicurio-secret
- name: apicurio-configmap
configMap:
name: apicurio-configmap
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
module: apicurio-studio-ws
name: apicurio-studio-ws
spec:
replicas: 1
selector:
matchLabels:
module: apicurio-studio-ws
template:
metadata:
labels:
module: apicurio-studio-ws
spec:
containers:
- env:
# - name: APICURIO_LOGGING_LEVEL
# value: debug
- name: APICURIO_DB_CONNECTION_URL
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-db-connection-url
- name: APICURIO_DB_DRIVER_NAME
value: mysql
- name: APICURIO_DB_INITIALIZE
value: "false"
- name: APICURIO_DB_PASSWORD
valueFrom:
secretKeyRef:
name: apicurio-secret
key: db-password
- name: APICURIO_DB_TYPE
value: mysql5
- name: APICURIO_DB_USER_NAME
valueFrom:
secretKeyRef:
name: apicurio-secret
key: db-user
- name: APICURIO_SHARE_FOR_EVERYONE
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-ui-feature-share-with-everyone
- name: JAVA_TOOL_OPTIONS
value: -Djava.net.preferIPv4Stack=true
image: 'apicurio/apicurio-studio-ws'
name: apicurio-studio-ws
ports:
- containerPort: 8080
restartPolicy: Always
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
module: apicurio-studio-ui
name: apicurio-studio-ui
spec:
replicas: 1
strategy: {}
selector:
matchLabels:
module: apicurio-studio-ui
template:
metadata:
labels:
module: apicurio-studio-ui
spec:
containers:
- env:
# - name: APICURIO_LOGGING_LEVEL
# value: debug
- name: APICURIO_KC_AUTH_URL
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: keycloak-url
- name: APICURIO_KC_REALM
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-kc-realm
- name: APICURIO_KC_CLIENT_ID
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-kc-client-id
- name: APICURIO_KC_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: apicurio-secret
key: apicurio-kc-client-secret
- name: APICURIO_UI_FEATURE_MICROCKS
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-ui-feature-microcks
- name: APICURIO_UI_FEATURE_SHARE_WITH_EVERYONE
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-ui-feature-share-with-everyone
- name: APICURIO_UI_LOGOUT_REDIRECT_URI
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-ui-logout-redirect-uri
- name: APICURIO_UI_HUB_API_URL
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-ui-hub-api-url
- name: APICURIO_UI_EDITING_URL
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-ui-editing-url
- name: JAVA_TOOL_OPTIONS
value: -Djava.net.preferIPv4Stack=true
- name: APICURIO_UI_VALIDATION_CHANNELNAME_REGEXP
value: |
'{([^\x00-\x20\x7f"\'%<>\\^`{|}]|%[0-9A-Fa-f]{2}|\{[+#./;?&=,!@|]?((\w|%[0-9A-Fa-f]{2})(\.?(\w|%[0-9A-Fa-f]{2}))*(:[1-9]\d{0,3}|\*)?)(,((\w|%[0-9A-Fa-f]{2})(\.?(\w|%[0-9A-Fa-f]{2}))*(:[1-9]\d{0,3}|\*)?))*\})*'
- name: APICURIO_MICROCKS_API_URL
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-microcks-api-url
- name: APICURIO_MICROCKS_CLIENT_ID
valueFrom:
configMapKeyRef:
name: apicurio-configmap
key: apicurio-microcks-client-id
- name: APICURIO_MICROCKS_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: apicurio-secret
key: apicurio-microcks-client-secret
image: 'apicurio/apicurio-studio-ui'
imagePullPolicy: Always
name: apicurio-studio-ui
ports:
- containerPort: 8080
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
labels:
module: apicurio-studio-api
name: apicurio-studio-api
spec:
ports:
- name: "8091"
port: 8091
targetPort: 8080
selector:
module: apicurio-studio-api
---
apiVersion: v1
kind: Service
metadata:
labels:
module: apicurio-studio-ui
name: apicurio-studio-ui
spec:
ports:
- name: "8093"
port: 8093
targetPort: 8080
selector:
module: apicurio-studio-ui
---
apiVersion: v1
kind: Service
metadata:
labels:
module: apicurio-studio-ws
name: apicurio-studio-ws
spec:
ports:
- name: "8092"
port: 8092
targetPort: 8080
protocol: TCP
selector:
module: apicurio-studio-ws
---
apiVersion: v1
kind: Service
metadata:
labels:
module: apicurio-studio-db
name: apicuriodb
spec:
ports:
- name: "3306"
port: 3306
targetPort: 3306
selector:
module: apicurio-studio-db
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: apicurio-studio-api
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
labels:
module: apicurio-studio-api
spec:
rules:
- host: studio.127.0.0.1.nip.io
http:
paths:
- backend:
serviceName: "apicurio-studio-api"
servicePort: 8091
path: /studio-api/?(.*)
pathType: Prefix
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: apicurio-studio-ui
labels:
module: apicurio-studio-ui
spec:
rules:
- host: apicurio.127.0.0.1.nip.io
http:
paths:
- backend:
serviceName: "apicurio-studio-ui"
servicePort: 8093
path: /
pathType: Prefix
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: apicurio-studio-ws
annotations:
labels:
module: apicurio-studio-ws
spec:
rules:
- host: ws.127.0.0.1.nip.io
http:
paths:
- backend:
serviceName: "apicurio-studio-ws"
servicePort: 8092
path: /designs
pathType: Prefix
---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment