| @ -0,0 +1,315 @@ | |||
| apiVersion: v1 | |||
| kind: List | |||
| items: | |||
| - apiVersion: v1 | |||
| kind: Namespace | |||
| metadata: | |||
| name: weave | |||
| - apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRole | |||
| metadata: | |||
| labels: | |||
| name: weave-scope | |||
| name: weave-scope | |||
| namespace: weave | |||
| rules: | |||
| - apiGroups: | |||
| - "" | |||
| resources: | |||
| - pods | |||
| - pods/log | |||
| - replicationcontrollers | |||
| - services | |||
| - namespaces | |||
| - persistentvolumes | |||
| - persistentvolumeclaims | |||
| verbs: | |||
| - get | |||
| - list | |||
| - watch | |||
| - apiGroups: | |||
| - "" | |||
| resources: | |||
| - pods | |||
| verbs: | |||
| - delete | |||
| - apiGroups: | |||
| - apps | |||
| resources: | |||
| - deployments | |||
| - statefulsets | |||
| - daemonsets | |||
| verbs: | |||
| - get | |||
| - list | |||
| - watch | |||
| - apiGroups: | |||
| - batch | |||
| resources: | |||
| - cronjobs | |||
| - jobs | |||
| verbs: | |||
| - get | |||
| - list | |||
| - watch | |||
| - apiGroups: | |||
| - extensions | |||
| resources: | |||
| - daemonsets | |||
| - deployments | |||
| - deployments/scale | |||
| - replicasets | |||
| verbs: | |||
| - get | |||
| - list | |||
| - watch | |||
| - apiGroups: | |||
| - extensions | |||
| resources: | |||
| - deployments/scale | |||
| verbs: | |||
| - update | |||
| - apiGroups: | |||
| - apps | |||
| resources: | |||
| - deployments/scale | |||
| verbs: | |||
| - get | |||
| - update | |||
| - apiGroups: | |||
| - storage.k8s.io | |||
| resources: | |||
| - storageclasses | |||
| verbs: | |||
| - list | |||
| - watch | |||
| - apiGroups: | |||
| - extensions | |||
| resourceNames: | |||
| - weave-scope | |||
| resources: | |||
| - podsecuritypolicies | |||
| verbs: | |||
| - use | |||
| - apiGroups: | |||
| - volumesnapshot.external-storage.k8s.io | |||
| resources: | |||
| - volumesnapshots | |||
| - volumesnapshotdatas | |||
| verbs: | |||
| - list | |||
| - watch | |||
| - apiGroups: | |||
| - "" | |||
| resources: | |||
| - nodes | |||
| verbs: | |||
| - get | |||
| - list | |||
| - watch | |||
| - update | |||
| - patch | |||
| - apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRoleBinding | |||
| metadata: | |||
| name: weave-scope | |||
| labels: | |||
| name: weave-scope | |||
| namespace: weave | |||
| roleRef: | |||
| kind: ClusterRole | |||
| name: weave-scope | |||
| apiGroup: rbac.authorization.k8s.io | |||
| subjects: | |||
| - kind: ServiceAccount | |||
| name: weave-scope | |||
| namespace: weave | |||
| - apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: weave-scope-app | |||
| labels: | |||
| name: weave-scope-app | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: app | |||
| namespace: weave | |||
| spec: | |||
| replicas: 1 | |||
| selector: | |||
| matchLabels: | |||
| app: weave-scope | |||
| revisionHistoryLimit: 2 | |||
| template: | |||
| metadata: | |||
| labels: | |||
| name: weave-scope-app | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: app | |||
| spec: | |||
| containers: | |||
| - name: app | |||
| args: | |||
| - '--no-probe' | |||
| env: [ ] | |||
| image: weaveworks/scope:1.13.2 | |||
| imagePullPolicy: IfNotPresent | |||
| ports: | |||
| - containerPort: 4040 | |||
| protocol: TCP | |||
| resources: | |||
| requests: | |||
| cpu: 200m | |||
| memory: 200Mi | |||
| - apiVersion: apps/v1 | |||
| kind: DaemonSet | |||
| metadata: | |||
| name: weave-scope-agent | |||
| labels: | |||
| name: weave-scope-agent | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: agent | |||
| namespace: weave | |||
| spec: | |||
| minReadySeconds: 5 | |||
| selector: | |||
| matchLabels: | |||
| app: weave-scope | |||
| template: | |||
| metadata: | |||
| labels: | |||
| name: weave-scope-agent | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: agent | |||
| spec: | |||
| containers: | |||
| - name: scope-agent | |||
| args: | |||
| - '--mode=probe' | |||
| - '--probe-only' | |||
| - '--probe.kubernetes.role=host' | |||
| - '--probe.docker.bridge=docker0' | |||
| - '--probe.docker=true' | |||
| - 'weave-scope-app.weave.svc.cluster.local.:80' | |||
| env: | |||
| - name: SCOPE_HOSTNAME | |||
| valueFrom: | |||
| fieldRef: | |||
| fieldPath: spec.nodeName | |||
| image: weaveworks/scope:1.13.2 | |||
| imagePullPolicy: IfNotPresent | |||
| resources: | |||
| requests: | |||
| cpu: 100m | |||
| memory: 100Mi | |||
| securityContext: | |||
| privileged: true | |||
| volumeMounts: | |||
| - name: docker-socket | |||
| mountPath: /var/run/docker.sock | |||
| - name: scope-plugins | |||
| mountPath: /var/run/scope/plugins | |||
| - name: sys-kernel-debug | |||
| mountPath: /sys/kernel/debug | |||
| dnsPolicy: ClusterFirstWithHostNet | |||
| hostNetwork: true | |||
| hostPID: true | |||
| tolerations: | |||
| - effect: NoSchedule | |||
| operator: Exists | |||
| volumes: | |||
| - name: docker-socket | |||
| hostPath: | |||
| path: /var/run/docker.sock | |||
| - name: scope-plugins | |||
| hostPath: | |||
| path: /var/run/scope/plugins | |||
| - name: sys-kernel-debug | |||
| hostPath: | |||
| path: /sys/kernel/debug | |||
| updateStrategy: | |||
| rollingUpdate: | |||
| maxUnavailable: 1 | |||
| - apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: weave-scope-cluster-agent | |||
| labels: | |||
| name: weave-scope-cluster-agent | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: cluster-agent | |||
| namespace: weave | |||
| spec: | |||
| replicas: 1 | |||
| selector: | |||
| matchLabels: | |||
| name: weave-scope-cluster-agent | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: cluster-agent | |||
| revisionHistoryLimit: 2 | |||
| template: | |||
| metadata: | |||
| labels: | |||
| name: weave-scope-cluster-agent | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: cluster-agent | |||
| spec: | |||
| containers: | |||
| - name: scope-cluster-agent | |||
| args: | |||
| - '--mode=probe' | |||
| - '--probe-only' | |||
| - '--probe.kubernetes.role=cluster' | |||
| - 'weave-scope-app.weave.svc.cluster.local.:80' | |||
| command: | |||
| - /home/weave/scope | |||
| image: 'docker.io/weaveworks/scope:1.13.2' | |||
| imagePullPolicy: IfNotPresent | |||
| resources: | |||
| requests: | |||
| cpu: 100m | |||
| memory: 100Mi | |||
| volumeMounts: | |||
| - name: scope-plugins | |||
| mountPath: /var/run/scope/plugins | |||
| serviceAccountName: weave-scope | |||
| volumes: | |||
| - name: scope-plugins | |||
| hostPath: | |||
| path: /var/run/scope/plugins | |||
| - apiVersion: v1 | |||
| kind: ServiceAccount | |||
| metadata: | |||
| name: weave-scope | |||
| labels: | |||
| name: weave-scope | |||
| namespace: weave | |||
| - apiVersion: v1 | |||
| kind: Service | |||
| metadata: | |||
| name: weave-scope-app | |||
| labels: | |||
| name: weave-scope-app | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: app | |||
| namespace: weave | |||
| spec: | |||
| type: NodePort | |||
| ports: | |||
| - name: app | |||
| port: 80 | |||
| nodePort: 30481 | |||
| protocol: TCP | |||
| targetPort: 4040 | |||
| selector: | |||
| name: weave-scope-app | |||
| app: weave-scope | |||
| weave-cloud-component: scope | |||
| weave-scope-component: app | |||
| @ -0,0 +1,248 @@ | |||
| --- | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRole | |||
| metadata: | |||
| name: proxy-clusterrole-kubeapiserver | |||
| rules: | |||
| - apiGroups: [""] | |||
| resources: | |||
| - nodes/metrics | |||
| - nodes/proxy | |||
| - nodes/stats | |||
| - nodes/log | |||
| - nodes/spec | |||
| verbs: ["get", "list", "watch", "create"] | |||
| --- | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRoleBinding | |||
| metadata: | |||
| name: proxy-role-binding-kubernetes-master | |||
| roleRef: | |||
| apiGroup: rbac.authorization.k8s.io | |||
| kind: ClusterRole | |||
| name: proxy-clusterrole-kubeapiserver | |||
| subjects: | |||
| - apiGroup: rbac.authorization.k8s.io | |||
| kind: User | |||
| name: kube-apiserver | |||
| --- | |||
| apiVersion: v1 | |||
| kind: Namespace | |||
| metadata: | |||
| name: cattle-system | |||
| --- | |||
| apiVersion: v1 | |||
| kind: ServiceAccount | |||
| metadata: | |||
| name: cattle | |||
| namespace: cattle-system | |||
| --- | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRoleBinding | |||
| metadata: | |||
| name: cattle-admin-binding | |||
| namespace: cattle-system | |||
| labels: | |||
| cattle.io/creator: "norman" | |||
| subjects: | |||
| - kind: ServiceAccount | |||
| name: cattle | |||
| namespace: cattle-system | |||
| roleRef: | |||
| kind: ClusterRole | |||
| name: cattle-admin | |||
| apiGroup: rbac.authorization.k8s.io | |||
| --- | |||
| apiVersion: v1 | |||
| kind: Secret | |||
| metadata: | |||
| name: cattle-credentials-80151d8 | |||
| namespace: cattle-system | |||
| type: Opaque | |||
| data: | |||
| url: "aHR0cHM6Ly9rOHMtc2VydmVy" | |||
| token: "azR0Nzk2ZDZjc2dka3pyOXJ3MjR2dDdwZzlzNW16bG45dzRxNWQ3d2w2bHZsdHY0Y3RoMjU4" | |||
| namespace: "" | |||
| --- | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRole | |||
| metadata: | |||
| name: cattle-admin | |||
| labels: | |||
| cattle.io/creator: "norman" | |||
| rules: | |||
| - apiGroups: | |||
| - '*' | |||
| resources: | |||
| - '*' | |||
| verbs: | |||
| - '*' | |||
| - nonResourceURLs: | |||
| - '*' | |||
| verbs: | |||
| - '*' | |||
| --- | |||
| apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: cattle-cluster-agent | |||
| namespace: cattle-system | |||
| spec: | |||
| selector: | |||
| matchLabels: | |||
| app: cattle-cluster-agent | |||
| template: | |||
| metadata: | |||
| labels: | |||
| app: cattle-cluster-agent | |||
| spec: | |||
| affinity: | |||
| nodeAffinity: | |||
| requiredDuringSchedulingIgnoredDuringExecution: | |||
| nodeSelectorTerms: | |||
| - matchExpressions: | |||
| - key: kubernetes.io/os | |||
| operator: NotIn | |||
| values: | |||
| - windows | |||
| preferredDuringSchedulingIgnoredDuringExecution: | |||
| - weight: 100 | |||
| preference: | |||
| matchExpressions: | |||
| - key: node-role.kubernetes.io/controlplane | |||
| operator: In | |||
| values: | |||
| - "true" | |||
| - weight: 1 | |||
| preference: | |||
| matchExpressions: | |||
| - key: node-role.kubernetes.io/etcd | |||
| operator: In | |||
| values: | |||
| - "true" | |||
| serviceAccountName: cattle | |||
| tolerations: | |||
| - operator: Exists | |||
| containers: | |||
| - name: cluster-register | |||
| imagePullPolicy: IfNotPresent | |||
| env: | |||
| - name: CATTLE_FEATURES | |||
| value: "" | |||
| - name: CATTLE_SERVER | |||
| value: "https://k8s-server" | |||
| - name: CATTLE_CA_CHECKSUM | |||
| value: "80133263142ecf49684f5a72e13c9ac613fce40afb85514123875530b55704dd" | |||
| - name: CATTLE_CLUSTER | |||
| value: "true" | |||
| - name: CATTLE_K8S_MANAGED | |||
| value: "true" | |||
| image: rancher/rancher-agent:v2.4.18 | |||
| volumeMounts: | |||
| - name: cattle-credentials | |||
| mountPath: /cattle-credentials | |||
| readOnly: true | |||
| volumes: | |||
| - name: cattle-credentials | |||
| secret: | |||
| secretName: cattle-credentials-80151d8 | |||
| defaultMode: 320 | |||
| --- | |||
| apiVersion: apps/v1 | |||
| kind: DaemonSet | |||
| metadata: | |||
| name: cattle-node-agent | |||
| namespace: cattle-system | |||
| spec: | |||
| selector: | |||
| matchLabels: | |||
| app: cattle-agent | |||
| template: | |||
| metadata: | |||
| labels: | |||
| app: cattle-agent | |||
| spec: | |||
| affinity: | |||
| nodeAffinity: | |||
| requiredDuringSchedulingIgnoredDuringExecution: | |||
| nodeSelectorTerms: | |||
| - matchExpressions: | |||
| - key: kubernetes.io/os | |||
| operator: NotIn | |||
| values: | |||
| - windows | |||
| hostNetwork: true | |||
| serviceAccountName: cattle | |||
| tolerations: | |||
| - operator: Exists | |||
| containers: | |||
| - name: agent | |||
| image: rancher/rancher-agent:v2.4.18 | |||
| imagePullPolicy: IfNotPresent | |||
| env: | |||
| - name: CATTLE_NODE_NAME | |||
| valueFrom: | |||
| fieldRef: | |||
| fieldPath: spec.nodeName | |||
| - name: CATTLE_SERVER | |||
| value: "https://k8s-server" | |||
| - name: CATTLE_CA_CHECKSUM | |||
| value: "80133263142ecf49684f5a72e13c9ac613fce40afb85514123875530b55704dd" | |||
| - name: CATTLE_CLUSTER | |||
| value: "false" | |||
| - name: CATTLE_K8S_MANAGED | |||
| value: "true" | |||
| - name: CATTLE_AGENT_CONNECT | |||
| value: "true" | |||
| volumeMounts: | |||
| - name: cattle-credentials | |||
| mountPath: /cattle-credentials | |||
| readOnly: true | |||
| - name: k8s-ssl | |||
| mountPath: /etc/kubernetes | |||
| - name: var-run | |||
| mountPath: /var/run | |||
| - name: run | |||
| mountPath: /run | |||
| - name: docker-certs | |||
| mountPath: /etc/docker/certs.d | |||
| securityContext: | |||
| privileged: true | |||
| volumes: | |||
| - name: k8s-ssl | |||
| hostPath: | |||
| path: /etc/kubernetes | |||
| type: DirectoryOrCreate | |||
| - name: var-run | |||
| hostPath: | |||
| path: /var/run | |||
| type: DirectoryOrCreate | |||
| - name: run | |||
| hostPath: | |||
| path: /run | |||
| type: DirectoryOrCreate | |||
| - name: cattle-credentials | |||
| secret: | |||
| secretName: cattle-credentials-80151d8 | |||
| defaultMode: 320 | |||
| - hostPath: | |||
| path: /etc/docker/certs.d | |||
| type: DirectoryOrCreate | |||
| name: docker-certs | |||
| updateStrategy: | |||
| type: RollingUpdate | |||
| rollingUpdate: | |||
| maxUnavailable: 25% | |||
| @ -0,0 +1,23 @@ | |||
| # Patterns to ignore when building packages. | |||
| # This supports shell glob matching, relative path matching, and | |||
| # negation (prefixed with !). Only one pattern per line. | |||
| .DS_Store | |||
| # Common VCS dirs | |||
| .git/ | |||
| .gitignore | |||
| .bzr/ | |||
| .bzrignore | |||
| .hg/ | |||
| .hgignore | |||
| .svn/ | |||
| # Common backup files | |||
| *.swp | |||
| *.bak | |||
| *.tmp | |||
| *.orig | |||
| *~ | |||
| # Various IDEs | |||
| .project | |||
| .idea/ | |||
| *.tmproj | |||
| .vscode/ | |||
| @ -0,0 +1,24 @@ | |||
| apiVersion: v2 | |||
| name: hammond-chart | |||
| description: A Helm chart for Kubernetes | |||
| # A chart can be either an 'application' or a 'library' chart. | |||
| # | |||
| # Application charts are a collection of templates that can be packaged into versioned archives | |||
| # to be deployed. | |||
| # | |||
| # Library charts provide useful utilities or functions for the chart developer. They're included as | |||
| # a dependency of application charts to inject those utilities and functions into the rendering | |||
| # pipeline. Library charts do not define any templates and therefore cannot be deployed. | |||
| type: application | |||
| # This is the chart version. This version number should be incremented each time you make changes | |||
| # to the chart and its templates, including the app version. | |||
| # Versions are expected to follow Semantic Versioning (https://semver.org/) | |||
| version: 0.1.0 | |||
| # This is the version number of the application being deployed. This version number should be | |||
| # incremented each time you make changes to the application. Versions are not expected to | |||
| # follow Semantic Versioning. They should reflect the version the application is using. | |||
| # It is recommended to use it with quotes. | |||
| appVersion: "1.16.0" | |||
| @ -0,0 +1,81 @@ | |||
| apiVersion: v1 | |||
| kind: Service | |||
| metadata: | |||
| name: hammond | |||
| spec: | |||
| type: NodePort | |||
| ports: | |||
| - name: http | |||
| port: 3000 | |||
| nodePort: 30081 | |||
| targetPort: hammond-http | |||
| selector: | |||
| app: hammond | |||
| --- | |||
| apiVersion: v1 | |||
| kind: PersistentVolumeClaim | |||
| metadata: | |||
| name: hammond-assets-claim | |||
| labels: | |||
| app: hammond | |||
| spec: | |||
| accessModes: | |||
| - ReadWriteMany | |||
| storageClassName: "" | |||
| resources: | |||
| requests: | |||
| storage: 2Gi | |||
| --- | |||
| apiVersion: v1 | |||
| kind: PersistentVolumeClaim | |||
| metadata: | |||
| name: hammond-config-claim | |||
| labels: | |||
| app: hammond | |||
| spec: | |||
| accessModes: | |||
| - ReadWriteMany | |||
| storageClassName: "" | |||
| resources: | |||
| requests: | |||
| storage: 1Gi | |||
| --- | |||
| apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: hammond | |||
| labels: | |||
| app: hammond | |||
| spec: | |||
| selector: | |||
| matchLabels: | |||
| app: hammond | |||
| tier: frontend | |||
| strategy: | |||
| type: Recreate | |||
| template: | |||
| metadata: | |||
| labels: | |||
| app: hammond | |||
| tier: frontend | |||
| spec: | |||
| containers: | |||
| - name: hammond | |||
| image: akhilrex/hammond | |||
| ports: | |||
| - containerPort: 3000 | |||
| name: "hammond-http" | |||
| volumeMounts: | |||
| - name: hammond-assets-folder | |||
| mountPath: /assets | |||
| - name: hammond-config-folder | |||
| mountPath: /config | |||
| imagePullSecrets: | |||
| - name: reg-cred-secret | |||
| volumes: | |||
| - name: hammond-assets-folder | |||
| persistentVolumeClaim: | |||
| claimName: hammond-assets-claim | |||
| - name: hammond-config-folder | |||
| persistentVolumeClaim: | |||
| claimName: hammond-config-claim | |||
| @ -0,0 +1,23 @@ | |||
| apiVersion: v1 | |||
| kind: PersistentVolume | |||
| metadata: | |||
| name: hammond-assets-folder | |||
| spec: | |||
| capacity: | |||
| storage: 2Gi | |||
| accessModes: | |||
| - ReadWriteMany | |||
| hostPath: | |||
| path: "/mnt/Externo/hammond/assets" | |||
| --- | |||
| apiVersion: v1 | |||
| kind: PersistentVolume | |||
| metadata: | |||
| name: hammond-config-folder | |||
| spec: | |||
| capacity: | |||
| storage: 1Gi | |||
| accessModes: | |||
| - ReadWriteMany | |||
| hostPath: | |||
| path: "/mnt/Externo/hammond/config" | |||
| @ -0,0 +1,16 @@ | |||
| #!/bin/bash | |||
| if [ -z "$1" ] | |||
| then | |||
| echo "Falta nombre del chart" | |||
| else | |||
| if [ "$2" = "i" ] | |||
| then | |||
| helm install $1 ./$1-chart --namespace=$1 --create-namespace | |||
| elif [ "$2" = "u" ] | |||
| then | |||
| helm uninstall $1 -n $1 | |||
| else | |||
| echo "Falta comando: i=instalar, u=desinstalar" | |||
| fi | |||
| fi | |||
| @ -0,0 +1,12 @@ | |||
| apiVersion: rbac.authorization.k8s.io/v1 | |||
| kind: ClusterRoleBinding | |||
| metadata: | |||
| name: admin-user | |||
| roleRef: | |||
| apiGroup: rbac.authorization.k8s.io | |||
| kind: ClusterRole | |||
| name: cluster-admin | |||
| subjects: | |||
| - kind: ServiceAccount | |||
| name: admin-user | |||
| namespace: kubernetes-dashboard | |||
| @ -0,0 +1,5 @@ | |||
| apiVersion: v1 | |||
| kind: ServiceAccount | |||
| metadata: | |||
| name: admin-user | |||
| namespace: kubernetes-dashboard | |||
| @ -0,0 +1,6 @@ | |||
| kubectl create -f pv-local-mattermost.yaml | |||
| kubectl create -f pv-local-mysql-mm.yaml | |||
| kubectl create -f secrets.yaml | |||
| kubectl create -f mm-service.yaml | |||
| kubectl create -f mysql-deployment-mm.yaml | |||
| kubectl create -f mattermost-deployment.yaml | |||
| @ -0,0 +1,82 @@ | |||
| apiVersion: v1 | |||
| kind: PersistentVolumeClaim | |||
| metadata: | |||
| name: mm-pv-claim | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| accessModes: | |||
| - ReadWriteOnce | |||
| storageClassName: "" | |||
| resources: | |||
| requests: | |||
| storage: 10Gi | |||
| --- | |||
| apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: mattermost | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| selector: | |||
| matchLabels: | |||
| app: mattermost | |||
| tier: frontend | |||
| strategy: | |||
| type: Recreate | |||
| template: | |||
| metadata: | |||
| labels: | |||
| app: mattermost | |||
| tier: frontend | |||
| spec: | |||
| containers: | |||
| - image: "mattermost/mattermost-team-edition:6.3.2" | |||
| name: mattermost | |||
| env: | |||
| - name: DB_TYPE | |||
| value: mariadb | |||
| - name: DB_HOST | |||
| value: mattermost-mariadb | |||
| - name: DB_PORT_NUMBER | |||
| value: "3306" | |||
| - name: MM_USERNAME | |||
| valueFrom: | |||
| secretKeyRef: | |||
| name: mattermost.env | |||
| key: USER | |||
| - name: MM_PASSWORD | |||
| valueFrom: | |||
| secretKeyRef: | |||
| name: mattermost.env | |||
| key: PASSWORD | |||
| - name: MM_DBNAME | |||
| valueFrom: | |||
| secretKeyRef: | |||
| name: mattermost.env | |||
| key: DATABASE | |||
| - name: MM_SQLSETTINGS_DATASOURCE | |||
| value: "mattermost:Dsa-0213@tcp(mattermost-mariadb:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s" | |||
| - name: MM_SQLSETTINGS_DRIVERNAME | |||
| value: "mysql" | |||
| ports: | |||
| - containerPort: 8065 | |||
| name: mattermost | |||
| volumeMounts: | |||
| - name: mattermost-persistent-storage | |||
| mountPath: /mattermost/data | |||
| - name: etclocaltime | |||
| mountPath: /etc/localtime | |||
| readOnly: true | |||
| imagePullSecrets: | |||
| - name: reg-cred-secret | |||
| volumes: | |||
| - name: mattermost-persistent-storage | |||
| persistentVolumeClaim: | |||
| claimName: mm-pv-claim | |||
| - name: etclocaltime | |||
| hostPath: | |||
| path: /etc/localtime | |||
| @ -0,0 +1,17 @@ | |||
| apiVersion: v1 | |||
| kind: Service | |||
| metadata: | |||
| name: mattermost | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| type: NodePort | |||
| ports: | |||
| - name: http | |||
| port: 8065 | |||
| nodePort: 30099 | |||
| targetPort: mattermost | |||
| selector: | |||
| app: mattermost | |||
| tier: frontend | |||
| @ -0,0 +1,86 @@ | |||
| apiVersion: v1 | |||
| kind: Service | |||
| metadata: | |||
| name: mattermost-mariadb | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| ports: | |||
| - name: mariadb | |||
| port: 3306 | |||
| targetPort: mariadb | |||
| selector: | |||
| app: mattermost | |||
| tier: mariadb | |||
| --- | |||
| apiVersion: v1 | |||
| kind: PersistentVolumeClaim | |||
| metadata: | |||
| name: mysql-mm-pv-claim | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| accessModes: | |||
| - ReadWriteOnce | |||
| resources: | |||
| requests: | |||
| storage: 10Gi | |||
| --- | |||
| apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: mattermost-mariadb | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| selector: | |||
| matchLabels: | |||
| app: mattermost | |||
| tier: mariadb | |||
| strategy: | |||
| type: Recreate | |||
| template: | |||
| metadata: | |||
| labels: | |||
| app: mattermost | |||
| tier: mariadb | |||
| spec: | |||
| containers: | |||
| - image: docker-registry:32000/mariadb:1.0 | |||
| name: mariadb | |||
| env: | |||
| - name: MYSQL_ROOT_PASSWORD | |||
| valueFrom: | |||
| secretKeyRef: | |||
| name: mattermost.env | |||
| key: ROOT_PASSWORD | |||
| - name: MYSQL_DATABASE | |||
| valueFrom: | |||
| secretKeyRef: | |||
| name: mattermost.env | |||
| key: DATABASE | |||
| - name: MYSQL_USER | |||
| valueFrom: | |||
| secretKeyRef: | |||
| name: mattermost.env | |||
| key: USER | |||
| - name: MYSQL_PASSWORD | |||
| valueFrom: | |||
| secretKeyRef: | |||
| name: mattermost.env | |||
| key: PASSWORD | |||
| ports: | |||
| - containerPort: 3306 | |||
| name: mariadb | |||
| volumeMounts: | |||
| - name: mysql-persistent-storage | |||
| mountPath: /var/lib/mysql | |||
| imagePullSecrets: | |||
| - name: reg-cred-secret | |||
| volumes: | |||
| - name: mysql-persistent-storage | |||
| persistentVolumeClaim: | |||
| claimName: mysql-mm-pv-claim | |||
| @ -0,0 +1,6 @@ | |||
| kubectl delete -f mattermost-deployment.yaml | |||
| kubectl delete -f mm-service.yaml | |||
| kubectl delete -f mysql-deployment-mm.yaml | |||
| kubectl delete -f pv-local-mattermost.yaml | |||
| kubectl delete -f pv-local-mysql-mm.yaml | |||
| kubectl delete -f secrets.yaml | |||
| @ -0,0 +1,12 @@ | |||
| apiVersion: v1 | |||
| kind: PersistentVolume | |||
| metadata: | |||
| name: mm-folder | |||
| spec: | |||
| capacity: | |||
| storage: 10Gi | |||
| accessModes: | |||
| - ReadWriteOnce | |||
| hostPath: | |||
| path: "/mnt/Externo/mattermost/mattermost" | |||
| @ -0,0 +1,11 @@ | |||
| apiVersion: v1 | |||
| kind: PersistentVolume | |||
| metadata: | |||
| name: mm-data | |||
| spec: | |||
| capacity: | |||
| storage: 10Gi | |||
| accessModes: | |||
| - ReadWriteOnce | |||
| hostPath: | |||
| path: "/mnt/Externo/mattermost/db" | |||
| @ -0,0 +1,12 @@ | |||
| apiVersion: v1 | |||
| kind: Secret | |||
| metadata: | |||
| name: mattermost.env | |||
| namespace: mattermost | |||
| type: Opaque | |||
| data: | |||
| ROOT: cm9vdA== | |||
| ROOT_PASSWORD: RHNhLTAyMTM= | |||
| DATABASE: bWF0dGVybW9zdA== | |||
| USER: bWF0dGVybW9zdA== | |||
| PASSWORD: RHNhLTAyMTM= | |||
| @ -0,0 +1,13 @@ | |||
| apiVersion: installation.mattermost.com/v1beta1 | |||
| kind: Mattermost | |||
| metadata: | |||
| name: mattermost # Chose the desired name | |||
| spec: | |||
| size: 100users # Adjust to your requirements | |||
| ingress: | |||
| enabled: true | |||
| host: k8s-server # Adjust to your domain | |||
| annotations: | |||
| kubernetes.io/ingress.class: nginx | |||
| version: 6.0.1 | |||
| licenseSecret: "" # If you have created secret in step 1, put its name here | |||
| @ -0,0 +1,71 @@ | |||
| apiVersion: v1 | |||
| kind: Service | |||
| metadata: | |||
| name: mattermost-mysql | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| ports: | |||
| - name: mysql | |||
| port: 3306 | |||
| targetPort: mysql | |||
| selector: | |||
| app: mattermost | |||
| tier: mysql | |||
| --- | |||
| apiVersion: v1 | |||
| kind: PersistentVolumeClaim | |||
| metadata: | |||
| name: mysql-mm-pv-claim | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| accessModes: | |||
| - ReadWriteOnce | |||
| resources: | |||
| requests: | |||
| storage: 10Gi | |||
| --- | |||
| apiVersion: apps/v1 | |||
| kind: Deployment | |||
| metadata: | |||
| name: mattermost-mysql | |||
| namespace: mattermost | |||
| labels: | |||
| app: mattermost | |||
| spec: | |||
| selector: | |||
| matchLabels: | |||
| app: mattermost | |||
| tier: mysql | |||
| strategy: | |||
| type: Recreate | |||
| template: | |||
| metadata: | |||
| labels: | |||
| app: mattermost | |||
| tier: mysql | |||
| spec: | |||
| containers: | |||
| - image: docker-registry:32000/mariadb:1.0 | |||
| name: mysql | |||
| env: | |||
| - name: MYSQL_ROOT_PASSWORD | |||
| valueFrom: | |||
| secretKeyRef: | |||
| name: mysqlmm-pass | |||
| key: password | |||
| ports: | |||
| - containerPort: 3306 | |||
| name: mysql | |||
| volumeMounts: | |||
| - name: mysql-persistent-storage | |||
| mountPath: /var/lib/mysql | |||
| imagePullSecrets: | |||
| - name: reg-cred-secret | |||
| volumes: | |||
| - name: mysql-persistent-storage | |||
| persistentVolumeClaim: | |||
| claimName: mysql-mm-pv-claim | |||
| @ -0,0 +1,10 @@ | |||
| apiVersion: v1 | |||
| kind: Secret | |||
| metadata: | |||
| name: mysqlmm-pass | |||
| namespace: mattermost | |||
| type: Opaque | |||
| data: | |||
| db_user: root | |||
| db_passwd: RHNhLTAyMTM= | |||
| password: RHNhLTAyMTM= | |||
| @ -0,0 +1,11 @@ | |||
| apiVersion: v1 | |||
| kind: PersistentVolume | |||
| metadata: | |||
| name: mm-data | |||
| spec: | |||
| capacity: | |||
| storage: 10Gi | |||
| accessModes: | |||
| - ReadWriteOnce | |||
| hostPath: | |||
| path: "/mnt/cluster/mattermost/mattermost-db" | |||