playground: Initial commit
This commit is contained in:
		
							
								
								
									
										10
									
								
								playground/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								playground/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | # Playground | ||||||
|  |  | ||||||
|  | Playground namespace is accessible to `Developers` AD group. | ||||||
|  |  | ||||||
|  | Novel log aggregator is being developer in this namespace: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | kubectl create secret generic -n playground mongodb-application-readwrite-password --from-literal="password=$(cat /dev/urandom | base64 | head -c 30)" | ||||||
|  | kubectl create secret generic -n playground mongodb-application-readonly-password --from-literal="password=$(cat /dev/urandom | base64 | head -c 30)" | ||||||
|  | kubectl apply -n playground -f logging.yml -f mongodb-support.yml -f mongoexpress.yml -f networkpolicy-base.yml | ||||||
							
								
								
									
										263
									
								
								playground/logging.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										263
									
								
								playground/logging.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,263 @@ | |||||||
|  | --- | ||||||
|  | apiVersion: mongodbcommunity.mongodb.com/v1 | ||||||
|  | kind: MongoDBCommunity | ||||||
|  | metadata: | ||||||
|  |   name: mongodb | ||||||
|  | spec: | ||||||
|  |   additionalMongodConfig: | ||||||
|  |     systemLog: | ||||||
|  |       quiet: true | ||||||
|  |   members: 3 | ||||||
|  |   type: ReplicaSet | ||||||
|  |   version: "5.0.13" | ||||||
|  |   security: | ||||||
|  |     authentication: | ||||||
|  |       modes: ["SCRAM"] | ||||||
|  |   users: | ||||||
|  |     - name: readwrite | ||||||
|  |       db: application | ||||||
|  |       passwordSecretRef: | ||||||
|  |         name: mongodb-application-readwrite-password | ||||||
|  |       roles: | ||||||
|  |         - name: readWrite | ||||||
|  |           db: application | ||||||
|  |       scramCredentialsSecretName: mongodb-application-readwrite | ||||||
|  |     - name: readonly | ||||||
|  |       db: application | ||||||
|  |       passwordSecretRef: | ||||||
|  |         name: mongodb-application-readonly-password | ||||||
|  |       roles: | ||||||
|  |         - name: readOnly | ||||||
|  |           db: application | ||||||
|  |       scramCredentialsSecretName: mongodb-application-readonly | ||||||
|  |   statefulSet: | ||||||
|  |     spec: | ||||||
|  |       logLevel: WARN | ||||||
|  |       template: | ||||||
|  |         spec: | ||||||
|  |           containers: | ||||||
|  |             - name: mongod | ||||||
|  |               resources: | ||||||
|  |                 requests: | ||||||
|  |                   cpu: 100m | ||||||
|  |                   memory: 2Gi | ||||||
|  |                 limits: | ||||||
|  |                   cpu: 2000m | ||||||
|  |                   memory: 2Gi | ||||||
|  |             - name: mongodb-agent | ||||||
|  |               resources: | ||||||
|  |                 requests: | ||||||
|  |                   cpu: 1m | ||||||
|  |                   memory: 100Mi | ||||||
|  |                 limits: {} | ||||||
|  |           affinity: | ||||||
|  |             podAntiAffinity: | ||||||
|  |               requiredDuringSchedulingIgnoredDuringExecution: | ||||||
|  |                 - labelSelector: | ||||||
|  |                     matchExpressions: | ||||||
|  |                       - key: app | ||||||
|  |                         operator: In | ||||||
|  |                         values: | ||||||
|  |                           - mongodb-svc | ||||||
|  |                   topologyKey: kubernetes.io/hostname | ||||||
|  |           nodeSelector: | ||||||
|  |             dedicated: monitoring | ||||||
|  |           tolerations: | ||||||
|  |             - key: dedicated | ||||||
|  |               operator: Equal | ||||||
|  |               value: monitoring | ||||||
|  |               effect: NoSchedule | ||||||
|  |       volumeClaimTemplates: | ||||||
|  |         - metadata: | ||||||
|  |             name: logs-volume | ||||||
|  |           spec: | ||||||
|  |             storageClassName: local-path | ||||||
|  |             accessModes: | ||||||
|  |             - ReadWriteOnce | ||||||
|  |             resources: | ||||||
|  |               requests: | ||||||
|  |                 storage: 512Mi | ||||||
|  |         - metadata: | ||||||
|  |             name: data-volume | ||||||
|  |           spec: | ||||||
|  |             storageClassName: local-path | ||||||
|  |             accessModes: | ||||||
|  |             - ReadWriteOnce | ||||||
|  |             resources: | ||||||
|  |               requests: | ||||||
|  |                 storage: 2Gi | ||||||
|  | --- | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: DaemonSet | ||||||
|  | metadata: | ||||||
|  |   name: log-shipper | ||||||
|  | spec: | ||||||
|  |   updateStrategy: | ||||||
|  |     type: RollingUpdate | ||||||
|  |     rollingUpdate: | ||||||
|  |       maxUnavailable: 50% | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: log-shipper | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: log-shipper | ||||||
|  |     spec: | ||||||
|  |       serviceAccountName: log-shipper | ||||||
|  |       containers: | ||||||
|  |         - name: log-shipper | ||||||
|  |           image: harbor.k-space.ee/k-space/log-shipper | ||||||
|  |           securityContext: | ||||||
|  |             runAsUser: 0 | ||||||
|  |           env: | ||||||
|  |             - name: MY_POD_NAMESPACE | ||||||
|  |               valueFrom: | ||||||
|  |                 fieldRef: | ||||||
|  |                   fieldPath: metadata.namespace | ||||||
|  |             - name: NODE_NAME | ||||||
|  |               valueFrom: | ||||||
|  |                 fieldRef: | ||||||
|  |                   fieldPath: spec.nodeName | ||||||
|  |             - name: MONGODB_HOST | ||||||
|  |               valueFrom: | ||||||
|  |                 secretKeyRef: | ||||||
|  |                   name: mongodb-application-readwrite | ||||||
|  |                   key: connectionString.standard | ||||||
|  |           ports: | ||||||
|  |             - containerPort: 8000 | ||||||
|  |               name: metrics | ||||||
|  |           resources: | ||||||
|  |             limits: | ||||||
|  |               memory: 200Mi | ||||||
|  |             requests: | ||||||
|  |               cpu: 100m | ||||||
|  |               memory: 100Mi | ||||||
|  |           volumeMounts: | ||||||
|  |             - name: etcmachineid | ||||||
|  |               mountPath: /etc/machine-id | ||||||
|  |               readOnly: true | ||||||
|  |             - name: varlibdockercontainers | ||||||
|  |               mountPath: /var/lib/docker/containers | ||||||
|  |               readOnly: true | ||||||
|  |             - name: varlog | ||||||
|  |               mountPath: /var/log | ||||||
|  |               readOnly: true | ||||||
|  |       volumes: | ||||||
|  |         - name: etcmachineid | ||||||
|  |           hostPath: | ||||||
|  |             path: /etc/machine-id | ||||||
|  |         - name: varlibdockercontainers | ||||||
|  |           hostPath: | ||||||
|  |             path: /var/lib/docker/containers | ||||||
|  |         - name: varlog | ||||||
|  |           hostPath: | ||||||
|  |             path: /var/log | ||||||
|  |       tolerations: | ||||||
|  |         - operator: "Exists" | ||||||
|  |           effect: "NoExecute" | ||||||
|  |         - operator: "Exists" | ||||||
|  |           effect: "NoSchedule" | ||||||
|  | --- | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|  | kind: ClusterRoleBinding | ||||||
|  | metadata: | ||||||
|  |   name: logging-log-shipper | ||||||
|  | subjects: | ||||||
|  |   - kind: ServiceAccount | ||||||
|  |     name: log-shipper | ||||||
|  |     namespace: playground | ||||||
|  | roleRef: | ||||||
|  |   kind: ClusterRole | ||||||
|  |   name: filebeat | ||||||
|  |   apiGroup: rbac.authorization.k8s.io | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: ServiceAccount | ||||||
|  | metadata: | ||||||
|  |   name: log-shipper | ||||||
|  |   labels: | ||||||
|  |     app: log-shipper | ||||||
|  | --- | ||||||
|  | apiVersion: networking.k8s.io/v1 | ||||||
|  | kind: NetworkPolicy | ||||||
|  | metadata: | ||||||
|  |   name: log-shipper | ||||||
|  | spec: | ||||||
|  |   podSelector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: log-shipper | ||||||
|  |   policyTypes: | ||||||
|  |     - Ingress | ||||||
|  |     - Egress | ||||||
|  |   ingress: | ||||||
|  |     - from: | ||||||
|  |         - namespaceSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               kubernetes.io/metadata.name: prometheus-operator | ||||||
|  |           podSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               app.kubernetes.io/name: prometheus | ||||||
|  |   egress: | ||||||
|  |     - to: | ||||||
|  |         - podSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               app: mongodb-svc | ||||||
|  |       ports: | ||||||
|  |         - port: 27017 | ||||||
|  | --- | ||||||
|  | apiVersion: networking.k8s.io/v1 | ||||||
|  | kind: NetworkPolicy | ||||||
|  | metadata: | ||||||
|  |   name: log-viewer-backend | ||||||
|  | spec: | ||||||
|  |   podSelector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: log-viewer-backend | ||||||
|  |   policyTypes: | ||||||
|  |     - Ingress | ||||||
|  |     - Egress | ||||||
|  |   egress: | ||||||
|  |     - to: | ||||||
|  |         - podSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               app: mongodb-svc | ||||||
|  |   ingress: | ||||||
|  |     - from: | ||||||
|  |         - namespaceSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               kubernetes.io/metadata.name: traefik | ||||||
|  |           podSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               app.kubernetes.io/name: traefik | ||||||
|  | --- | ||||||
|  | apiVersion: networking.k8s.io/v1 | ||||||
|  | kind: NetworkPolicy | ||||||
|  | metadata: | ||||||
|  |   name: log-viewer-frontend | ||||||
|  | spec: | ||||||
|  |   podSelector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: log-viewer-frontend | ||||||
|  |   policyTypes: | ||||||
|  |     - Ingress | ||||||
|  |     - Egress | ||||||
|  |   ingress: | ||||||
|  |     - from: | ||||||
|  |         - namespaceSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               kubernetes.io/metadata.name: traefik | ||||||
|  |           podSelector: | ||||||
|  |             matchLabels: | ||||||
|  |               app.kubernetes.io/name: traefik | ||||||
|  | --- | ||||||
|  | apiVersion: monitoring.coreos.com/v1 | ||||||
|  | kind: PodMonitor | ||||||
|  | metadata: | ||||||
|  |   name: log-shipper | ||||||
|  | spec: | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: log-shipper | ||||||
|  |   podMetricsEndpoints: | ||||||
|  |     - port: metrics | ||||||
							
								
								
									
										1
									
								
								playground/mongodb-support.yml
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								playground/mongodb-support.yml
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | ../mongodb-operator/mongodb-support.yml | ||||||
							
								
								
									
										1
									
								
								playground/mongoexpress.yml
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								playground/mongoexpress.yml
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | ../shared/mongoexpress.yml | ||||||
							
								
								
									
										1
									
								
								playground/networkpolicy-base.yml
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								playground/networkpolicy-base.yml
									
									
									
									
									
										Symbolic link
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | ../shared/networkpolicy-base.yml | ||||||
		Reference in New Issue
	
	Block a user