UNCLASSIFIED

Commit d9086e43 authored by Micah Nagel's avatar Micah Nagel 💰
Browse files

feat: add more stuff

doesn't work yet
parent 3fa9e528
include: include:
- project: 'platform-one/big-bang/pipeline-templates/pipeline-templates' - project: 'platform-one/big-bang/pipeline-templates/pipeline-templates'
ref: remove-helm-dependency ref: master
file: '/templates/package-tests.yml' file: '/templates/package-tests.yml'
# Changelog
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [0.1.0-bb.0] - 2021-02-X
### Added
- Initial chart built from operator v1.12.0 using Ironbank images
* @kevin.wilder @ryan.j.garcia * @micah.nagel @branden.cobb
# Mattermost
Mattermost is an open source, private cloud, Slack-alternative from https://mattermost.com. It is used for enterprise collaboration/chat within P1 and for Big Bang.
This repo provides an implementation of Mattermost for Big Bang. Installation requires that the [Mattermost Operator](https://repo1.dso.mil/platform-one/big-bang/apps/collaboration-tools/mattermost-operator) be installed in your cluster as a prerequisite.
Several of the important values to take note of when installing include:
- `istio.enabled`: This will enable istio networking for Mattermost within your cluster.
- `users`: This changes the maximum users for your instance, allowable values are 100, 1000, 5000, 10000, 25000 (NOTE: this may be limited on whether you have an enterprise license).
- `replicaCount`: The desired number of replicas for your instance. Defaults to 3 with the `chart/values.yaml`.
- `enterprise.enabled`: Enable enterprise features (if you don't also specify a license this only affects monitoring).
- `enterprise.license`: Value to add your license (entire license file contents - format shown in values). You can also manually add your license via the system console in Mattermost.
- `minio.install`: Install a minio instance standalone for Mattermost, for production you should specify a `fileStore` url, secret, and bucket.
- `postgresql.install`: Install a postgres instance standalone for Mattermost, for production you should specify a `database` secret
- `sso.enabled`: Enable SSO integration w/ Keycloak, requires additional config/values to point to your Keycloak.
- `monitoring.enabled`: Enabled Prometheus monitoring integration with Mattermost, this will only work if you toggle `enterprise.enabled` to true as well.
--- ---
apiVersion: v2 apiVersion: v2
appVersion: "5.27.0" name: mattermost
dependencies: ~ type: application
description: "Deployment of mattermost operator using Helm" version: "0.1.0-bb.0"
appVersion: "5.31.0"
description: "Deployment of mattermost"
keywords: keywords:
- Mattermost - Mattermost
- Instance - Instance
kubeVersion: ">=1.12.0-0" kubeVersion: ">=1.12.0-0"
maintainers:
- dependencies:
email: ~ - name: postgresql
name: ~ version: 10.3.5
name: mattermost-operator alias: postgresql
type: application condition: postgresql.install
version: "1.5.0" - name: minio
version: 0.1.0-bb.0
alias: minio
condition: minio.install
apiVersion: v2
name: minio
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-bb.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: 2.0.9
{{/*
Expand the name of the chart.
*/}}
{{- define "minio.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "minio.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "minio.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "minio.labels" -}}
helm.sh/chart: {{ include "minio.chart" . }}
{{ include "minio.selectorLabels" . }}
app.kubernetes.io/version: {{ .Chart.Version | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "minio.selectorLabels" -}}
app.kubernetes.io/name: {{ include "minio.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ include "mattermost.name" . }}
{{- end }}
apiVersion: operator.min.io/v1
kind: MinIOInstance
metadata:
name: minio
namespace: {{ .Release.Namespace }}
## If specified, MinIOInstance pods will be dispatched by specified scheduler.
## If not specified, the pod will be dispatched by default scheduler.
# scheduler:
# name: my-custom-scheduler
spec:
## Add metadata to the all pods created by the StatefulSet
metadata:
## Optionally pass labels to be applied to the statefulset pods
labels:
app: minio
{{ include "minio.labels" . | nindent 6 }}
app.kubernetes.io/component: "objectstorage"
annotations:
prometheus.io/path: /minio/prometheus/metrics
prometheus.io/port: "9000"
prometheus.io/scrape: "true"
## Registry location and Tag to download MinIO Server image
image: {{ .Values.image.name }}:{{ .Values.image.tag }}
serviceAccountName: minio-service-account
## A ClusterIP Service will be created with the given name
serviceName: minio-internal-service
zones:
- name: "zone-0"
## Number of MinIO servers/pods in this zone.
## For standalone mode, supply 1. For distributed mode, supply 4 or more.
## Note that the operator does not support upgrading from standalone to distributed mode.
servers: {{ .Values.zones.servers }}
## Supply number of volumes to be mounted per MinIO server instance.
## 2 is minimum volumes with 3 servers
volumesPerServer: {{ .Values.volumesPerServer }}
## Mount path where PV will be mounted inside container(s). Defaults to "/export".
mountPath: /export
## Sub path inside Mount path where MinIO starts. Defaults to "".
# subPath: /data
## This VolumeClaimTemplate is used across all the volumes provisioned for MinIO cluster.
## Please do not change the volumeClaimTemplate field while expanding the cluster, this may
## lead to unbound PVCs and missing data
volumeClaimTemplate:
metadata:
name: data
spec:
accessModes:
- {{ .Values.volumeClaimTemplate.accessModes}}
resources:
requests:
storage: {{ .Values.volumeClaimTemplate.storage}}
## Secret with credentials to be used by MinIO instance.
credsSecret:
name: {{ .Values.minioUICreds }}
## PodManagement policy for pods created by StatefulSet. Can be "OrderedReady" or "Parallel"
## Refer https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
## for details. Defaults to "Parallel"
podManagementPolicy: Parallel
## Secret with certificates to configure TLS for MinIO certs. Create secrets as explained
## here: https://github.com/minio/minio/tree/master/docs/tls/kubernetes#2-create-kubernetes-secret
# externalCertSecret:
# name: tls-ssl-minio
## Enable Kubernetes based certificate generation and signing as explained in
## https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster
requestAutoCert: false
## Used when "requestAutoCert" is set to true. Set CommonName for the auto-generated certificate.
## Internal DNS name for the pod will be used if CommonName is not provided.
## DNS name format is minio-{0...3}.minio.default.svc.cluster.local
certConfig:
commonName: ""
organizationName: []
dnsNames: []
## Used to specify a toleration for a pod
# tolerations:
# - effect: NoSchedule
# key: dedicated
# operator: Equal
# value: storage
## Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config)
# env:
# - name: MINIO_BROWSER
# value: "off" # to turn-off browser
# - name: MINIO_STORAGE_CLASS_STANDARD
# value: "EC:2"
## Configure resource requests and limits for MinIO containers
# resources:
# requests:
# memory: 20Gi
## Liveness probe detects situations where MinIO server instance
## is not working properly and needs restart. Kubernetes automatically
## restarts the pods if liveness checks fail.
liveness:
initialDelaySeconds: 10
periodSeconds: 1
timeoutSeconds: 1
## nodeSelector parameters for MinIO Pods. It specifies a map of key-value pairs. For the pod to be
## eligible to run on a node, the node must have each of the
## indicated key-value pairs as labels.
## Read more here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
# nodeSelector:
# disktype: ssd
## Affinity settings for MinIO pods. Read more about affinity
## here: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity.
# affinity:
apiVersion: v1
kind: Secret
metadata:
name: minio-creds-secret
namespace: {{ .Release.Namespace }}
labels:
{{ include "minio.labels" . | nindent 4 }}
app.kubernetes.io/component: "objectstorage"
type: Opaque
data:
accesskey: {{ .Values.accessKey | b64enc }}
secretkey: {{ .Values.secretKey | b64enc }}
apiVersion: v1
kind: Service
metadata:
name: minio-service
namespace: {{ .Release.Namespace }}
labels:
{{ include "minio.labels" . | nindent 4 }}
app.kubernetes.io/component: "objectstorage"
spec:
type: ClusterIP
ports:
- port: 9000
targetPort: 9000
protocol: TCP
selector:
app: minio
apiVersion: v1
kind: ServiceAccount
metadata:
name: minio-service-account
namespace: {{ .Release.Namespace }}
labels:
{{ include "minio.labels" . | nindent 4 }}
app.kubernetes.io/component: "objectstorage"
imagePullSecrets:
{{ toYaml .Values.global.imagePullSecrets | indent 2 }}
# Configure number of MinIO Operator Deployment Replicas
replicas:
count: 1
# Configure repo and tag of MinIO Operator Image
image:
name: registry1.dso.mil/ironbank/opensource/minio/minio
tag: RELEASE.2020-07-02T00-15-09Z
imagePullPolicy: IfNotPresent
zones:
# refer to documentation for number of servers versus volumes per server
# https://docs.min.io/docs/minio-server-limits-per-tenant.html
servers: 3 # scale to 3 for dev
volumesPerServer: 2 # 2 is minimum volumes with 3 servers
volumeClaimTemplate:
accessModes: ReadWriteOnce
storage: 1Gi # scale down for dev
minioUICreds: minio-creds-secret # Modify if you want to use an existing secret, minio-creds-secret is created by default and uses the below values
accessKey: minio
secretKey: minio#123
imagePullSecrets: [ ]
# 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
*~
# Various IDEs
.project
.idea/
*.tmproj
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.4.0
digest: sha256:af8a0894ca6f099e57ebfe9ce25a50d9e7548aeaa53b69d051ecc1681d6d77bb
generated: "2021-02-22T16:26:47.159006+01:00"
annotations:
category: Database
apiVersion: v2
appVersion: 11.11.0
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.x.x
description: Chart for PostgreSQL, an object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance.
engine: gotpl
home: https://github.com/bitnami/charts/tree/master/bitnami/postgresql
icon: https://bitnami.com/assets/stacks/postgresql/img/postgresql-stack-220x234.png
keywords:
- postgresql
- postgres
- database
- sql
- replication
- cluster
maintainers:
- email: containers@bitnami.com
name: Bitnami
- email: cedric@desaintmartin.fr
name: desaintmartin
name: postgresql
sources:
- https://github.com/bitnami/bitnami-docker-postgresql
- https://www.postgresql.org/
version: 10.3.5
apiVersion: kpt.dev/v1alpha1
kind: Kptfile
metadata:
name: postgresql
upstream:
type: git
git:
commit: c2ac165a579a8f06dede2b6fede2f4ec2bfea495
repo: https://github.com/bitnami/charts
directory: /bitnami/postgresql
ref: master
This diff is collapsed.
commonAnnotations:
helm.sh/hook: "\"pre-install, pre-upgrade\""
helm.sh/hook-weight: "-1"
# Leave this file empty to ensure that CI runs builds against the default configuration in values.yaml.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment