Skip to content

Commit

Permalink
feat: initial implementation of kube init
Browse files Browse the repository at this point in the history
* add support for initializing a kubernetes cluster with:
  * default namespaces
    * gitops-system
    * security-system
    * mesh-system
    * monitoring-system
  * default pod security policies
    * privileged
    * restricted
  * default cluster roles
    * psp:privileged
    * psp:restricted
  * default cluster role binding
    * default:restricted
  * default role binding in kube-system for system pods
    * default:privileged
  * default priority classes
    * low (1)
    * standard (100) - default
    * high (1000)
  * default storage classes
    * fast - mapped on various providers to fastest available storage
    * slow - mapped on various providers to slowest available storage
* install sealed-secrets into cluster
* install flux
* include charts for:
  * fluxcd/flux
  * fluxcd/helm-operator
  * istio/istio
  * istio/istio-init
  * stable/cert-manager
  * stable/grafana
  * stable/minio (to support velero in local test scenarios)
  * stable/prometheus
  * stable/sealed-secrets
  * stable/velero

NOTES:

This is intended to be a one-stop shop for initializing new clusters in
a production-ready operational model with least-privileged access for
users and pods.

We will eventually support initializing any cluster on any well-known
platform, including:

* Amazon Web Services (EKS)
* Azure (AKS)
* Google Cloud Platform (GKE)
* Minikube (local testing only)
  • Loading branch information
dmccaffery committed Nov 5, 2019
1 parent 4d77efa commit ff07cf3
Show file tree
Hide file tree
Showing 490 changed files with 42,058 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
root = true

[*]
indent_style = space
indent_size = 4
char_set = utf-8
insert_final_newline = true

[*.{js,json}]
indent_size = 2

[*.{yml,yaml}]
indent_size = 2

[Makefile]
indent_style = tab
60 changes: 60 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# normalize line endings
* text=auto

# known binary files are treated as binary
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.ico filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.flv filter=lfs diff=lfs merge=lfs -text
*.fla filter=lfs diff=lfs merge=lfs -text
*.swf filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.7z filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.pyc filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.woff filter=lfs diff=lfs merge=lfs -text
*.woff2 filter=lfs diff=lfs merge=lfs -text
*.eot filter=lfs diff=lfs merge=lfs -text
*.svg filter=lfs diff=lfs merge=lfs -text
*.docx filter=lfs diff=lfs merge=lfs -text
*.DOCX filter=lfs diff=lfs merge=lfs -text

# documentation
*.md text
LICENSE text

# known plain text files are treated as plain text
*.doc text diff=astextplain
*.DOC text diff=astextplain
*.dot text diff=astextplain
*.DOT text diff=astextplain
*.pdf text diff=astextplain
*.PDF text diff=astextplain
*.rtf text diff=astextplain
*.RTF text diff=astextplain

# git config
.gitattributes text
.gitignore text

# config files
.config text

# windows files
*.cmd text eol=crlf
*.bat text eol=crlf
*.txt text eol=crlf
*.ini text eol=crlf
*.ps1 text eol=crlf
*.psm1 text eol=crlf
*.psd1 text eol=crlf

# unix files
*.sh text eol=lf
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# hidden folders
.*/**
.*/*

# generated files
CHANGELOG.md

# include special files
!.gitignore
!.gitattributes

# mac files
.DS_Store

# win files
[Tt]humbs.db

# log files
*.log

#vscode
!.vscode/*
7 changes: 7 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"recommendations": [
"editorconfig.editorconfig",
"ms-kubernetes-tools.vscode-kubernetes-tools",
"redhat.vscode-yaml"
]
}
8 changes: 8 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"[shellscript]": {
"editor.fontLigatures": false,
},
"[git-commit]": {
"editor.fontLigatures": false
}
}
21 changes: 21 additions & 0 deletions charts/fluxcd/flux/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 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
Loading

0 comments on commit ff07cf3

Please sign in to comment.