Skip to content

Commit

Permalink
Merge pull request #12 from vertigobr/develop
Browse files Browse the repository at this point in the history
0.8.1
  • Loading branch information
andrevtg authored Oct 30, 2020
2 parents c01e717 + 628f0f6 commit 3e714b0
Show file tree
Hide file tree
Showing 20 changed files with 1,173 additions and 23 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,4 @@ kubeconfig
node_modules/
.docusaurus/
build/
init-keys.json
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Release Notes

## Version 0.8.1 - 2020-10-21

Upgrades:

- keycloak: 9.4.0

Improvements:

- Added a sample test case for deploying Keycloak on a local environment.
- Look at the keycloak_local target on the makefile

## Version 0.8.0 - 2020-10-15

Upgrades:
Expand Down
1 change: 1 addition & 0 deletions DEVELOP.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Insira a linha abaixo no arquivo /etc/hosts da estação de desenvolvimento:

```
127.0.0.1 whoami.localdomain
127.0.0.1 keycloak.localdomain
```

### Ferramentas
Expand Down
18 changes: 6 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@

VKPR is inspired in the [BKPR project](https://github.com/bitnami/kube-prod-runtime) but it's handed over through Helm chart.

[🇺🇸 🇬🇧 English](README.md) | [🇧🇷 🇵🇹 Português](README_pt.md)

## Description

VKPR was developed to make Kubernetes easier to use. It is composed of third-party sets, organized to deliver a production-ready Kubernetes with minimal effort.

The project is structured in stacks that group products with correlative objective. At the moment, these are the available stacks:
The project is structured in stacks that group products with correlated objective. At the moment, these are the available stacks:

- **[Ingress stack](#ingress-stack):**
- NGINX Ingress Controller
Expand Down Expand Up @@ -38,7 +40,7 @@ helm repo update
helm upgrade -i -f values.yaml -n vkpr vkpr vertigo/vkpr
```

Take a look on docs to check the installation for a more specific scenario.
Take a look on [VKPR documentation](https://charts.vertigo.com.br/docs/) to check the installation for a more specific scenario.

## Stack

Expand Down Expand Up @@ -80,16 +82,8 @@ The **Backup Stack** is dedicated to backup and restore tools in order to migrat

## Charts version

| Charts | VKPR 0.8.0 |
|------------------------------------------------------------------------------------------------|------------|
| [cert-manager](https://charts.vertigo.com.br/docs/stacks#cert-manager) | `1.0.3` |
| [ExternalDNS](https://charts.vertigo.com.br/docs/stacks#externaldns) | `3.4.9` |
| [Loki](https://charts.vertigo.com.br/docs/stacks#loki) | `0.41.2` |
| [Keycloak](https://charts.vertigo.com.br/docs/stacks#keycloak) | `8.2.2` |
| [NGINX Ingress Controller](https://charts.vertigo.com.br/docs/stacks#nginx-ingress-controller) | `3.7.1` |
| [Kube Prometheus Stack](https://charts.vertigo.com.br/docs/stacks#prometheus-operator) | `10.1.0` |
| [Vault](https://charts.vertigo.com.br/docs/stacks#vault) | `0.7.0` |
| [Velero](https://charts.vertigo.com.br/docs/stacks#velero) | `2.13.3` |
<!-- @import "VERSIONS.md" -->
See [VKPR Chart and Subchart versions](VERSIONS.md).

## Requisites

Expand Down
104 changes: 104 additions & 0 deletions README_pt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
![](https://img.shields.io/badge/status-In%20development-yellow)
![](https://img.shields.io/badge/license-Apache%202.0-blue)
![Release Helm chart](https://github.com/vertigobr/vkpr/workflows/Release%20Helm%20chart/badge.svg)
# VKPR - Vertigo Kubernetes Production Runtime

O VKPR é inspirado no [projeto BKPR](https://github.com/bitnami/kube-prod-runtime) da Bitnami, mas é implementado puramente com Helm charts.

[&#x1f1fa;&#x1f1f8; &#x1f1ec;&#x1f1e7; English](README.md) | [&#x1f1e7;&#x1f1f7; &#x1f1f5;&#x1f1f9; Português](README_pt.md)

## Descrição

O VKPR foi criado para simplificar a adoção de Kubernetes. Ele é composto por charts de terceiros, organizados de forma a suportar o uso de Kubernetes em produção com mínimo esforço.

O VKPR está estruturado em pilhas (*stacks*) que agrupam componentes que suportam uma funcionalidade correlata. As *stacks* atuais são:

- **[Ingress stack](#ingress-stack):**
- NGINX Ingress Controller
- ExternalDNS
- **[Logging stack](#logging-stack):**
- Loki
- **[Monitoring stack](#monitoring-stack):**
- Prometheus Operator
- Grafana
- Prometheus
- Alertmanager
- **[Security stack](#security-stack):**
- cert-manager
- Vault
- Keycloak
- **[Backup stack](#backup-stack):**
- Velero

## Instalação

A instalação do VKPR usa o [helm](https://helm.sh/):

```sh
helm repo add vertigo https://charts.vertigo.com.br
helm repo update
helm upgrade -i -f values.yaml -n vkpr vkpr vertigo/vkpr
```

Leia a [Documentação do VKPR](https://charts.vertigo.com.br/docs/) para estudar cenários específicos de instalação.

## Stacks

### Ingress stack

O **Ingress stack** foca em produzir formas de conexão externa aos recursos dentro do cluster Kubernetes.

- [NGINX Ingress Controller](https://charts.vertigo.com.br/docs/stacks#nginx-ingress-controller) é um Ingress Controller para Kubernetes que usa o NGINX como proxy reverso e balanceador de carga (*load balancer*).
- [ExternalDNS](https://charts.vertigo.com.br/docs/stacks#externaldns) é um componente para Kubernetes que configura automaticamente serviços de DNS públicos para que serviços do cluster possam ser descobertos por nomes DNS comuns.

### Logging stack

O **Logging Stack** cuida da coleta de logs distribuídos para posterior pesquisa.

- [Loki](https://charts.vertigo.com.br/docs/stacks#loki) é um sistema de coleta e agregação de logs inspirado no Prometheus que é escalável, disponível e multi-tenant.

### Monitoring stack

O **Monitoring Stack** é dedicado à observação e coleta de métricas tanto para o cluster como para serviços e aplicações individualmente.

- [Prometheus Operator](https://charts.vertigo.com.br/docs/stacks#prometheus-operator) permite instalar e gerenciar nativamente o Prometheus e seus componentes no Kubernetes. O Prometheus Operator contém os seguintes mídulos:
- [Grafana](https://grafana.com/oss/grafana/) permite pesquisar e visualizar métricas e logs.
- [Prometheus](https://grafana.com/oss/prometheus/) é um sistema de monitoração com um rico modelo de dados multidimensional, uma linguagem de pesquisa concisa e rica (PromQL), uma base de séries temporais eficiente, além de mais de 150 integrações com sistemas de terceiros.
- [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) lida com alertas enviados por outras aplicações (entre elas o próprio Prometheus).

### Security stack

O **Security Stack** é focado em ferramentas de segurança que cuidam de questões onipresentes para sistemas (como gestão de identidade e segredos).

- [cert-manager](https://charts.vertigo.com.br/docs/stacks#cert-manager) é um componente para Kubernetes que automatiza a gestão e emissão de certificados TLS (HTTPS) por diversos emissores externos.
- [Vault](https://charts.vertigo.com.br/docs/stacks#vault) é uma solução que protege, armazena e restringe acesso a tokens, senhas, certificados, chaves de APIs e outros tantos elementos restritos típicos de sistemas modernos.
- [Keycloak](https://charts.vertigo.com.br/docs/stacks#keycloak) é uma solução de código aberto para Gestão de Identidade e Acesso útil para aplicações e serviços modernos.

### Backup stack

O **Backup Stack** foca em ferramentas de backup e restore que auxiliam na migração e/ou restauração de um cluster e seus volumes.

- [Velero](https://charts.vertigo.com.br/docs/stacks#velero) é uma ferramenta de código aberto para backup e restore de clusters Kubernetes, sendo útil para *disaster recovery* e/ou migração de clusters e seus recursos.

## Versões dos charts

<!-- @import "VERSIONS.md" -->
Veja [Versões dos Charts e Subchart do VKPR](VERSIONS.md).

## Requisitos

- Kubernetes >= 1.15
- Helm >= 3

## Contribuindo

Pull requests e Merge Requests são bem-vindos! Por favor, primeiro abra uma issue e discuta conosco sobre a mudança proposta e tenha certeza que a testou previamente.

## Suporte

O suporte à comunidade se dará através de issues abertas.
Para suporte corporativo entre em contato com [email protected].

## Licença

VKPR é licenciado via [Apache License Version 2.0](LICENSE).
11 changes: 11 additions & 0 deletions VERSIONS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@

| Charts | VKPR 0.8.1 |
| ---------------------------------------------------------------------------------------------- | ---------- |
| [cert-manager](https://charts.vertigo.com.br/docs/stacks#cert-manager) | `1.0.3` |
| [ExternalDNS](https://charts.vertigo.com.br/docs/stacks#externaldns) | `3.4.9` |
| [Loki](https://charts.vertigo.com.br/docs/stacks#loki) | `2.0.0` |
| [Keycloak](https://charts.vertigo.com.br/docs/stacks#keycloak) | `9.5.0` |
| [NGINX Ingress Controller](https://charts.vertigo.com.br/docs/stacks#nginx-ingress-controller) | `3.7.1` |
| [Kube Prometheus Stack](https://charts.vertigo.com.br/docs/stacks#prometheus-operator) | `10.3.1` |
| [Vault](https://charts.vertigo.com.br/docs/stacks#vault) | `0.8.0` |
| [Velero](https://charts.vertigo.com.br/docs/stacks#velero) | `2.13.3` |
10 changes: 5 additions & 5 deletions charts/vkpr/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: vkpr
version: 0.8.0
version: 0.8.1
appVersion: v1.4.0
home: https://github.com/vertigobr/vkpr
icon: https://vertigo.com.br/wp-content/uploads/favicon.png
Expand Down Expand Up @@ -28,7 +28,7 @@ dependencies:
### LOGGING STACK ###
- name: loki-stack
repository: https://grafana.github.io/loki/charts
version: 0.41.2
version: 2.0.0
condition: loki-stack.enabled
#
# LOGGING STACK
Expand Down Expand Up @@ -70,7 +70,7 @@ dependencies:
### MONITORING STACK ###
- name: kube-prometheus-stack
repository: https://prometheus-community.github.io/helm-charts
version: 10.1.0
version: 10.3.1
condition: kube-prometheus-stack.enabled

# - name: metrics-server
Expand All @@ -96,12 +96,12 @@ dependencies:

- name: keycloak
repository: https://codecentric.github.io/helm-charts
version: 8.2.2
version: 9.5.0
condition: keycloak.enabled

- name: vault
repository: https://helm.releases.hashicorp.com
version: 0.7.0
version: 0.8.0
condition: vault.enabled

### BACKUP STACK ###
Expand Down
2 changes: 2 additions & 0 deletions charts/vkpr/templates/keycloak-data-volume.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{{- if .Values.keycloak.enabled -}}
{{- if eq .Values.keycloak.postgresql.enabled false -}}
# apenas para h2
apiVersion: v1
kind: PersistentVolumeClaim
Expand All @@ -11,3 +12,4 @@ spec:
requests:
storage: 1Gi
{{- end -}}
{{- end -}}
11 changes: 8 additions & 3 deletions charts/vkpr/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,14 @@ graylog:

keycloak:
enabled: false
keycloak:
persistence:
dbVendor: h2
# postgresql - enables subchart
# keep disabled to use external database (like RDS) - this is the recommended option
# https://artifacthub.io/packages/helm/codecentric/keycloak
# Keycloak will fallback to H2 local file-based DB if no `DB_VENDOR` is informed
# H2 located at "/opt/jboss/keycloak/standalone/data"
# Mounting it into a PVC can be done, but it should only be ok for single instance.
postgresql:
enabled: false

vault:
enabled: false
Expand Down
32 changes: 32 additions & 0 deletions examples/keycloak/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
version: '2'
services:
oidc-example:
image: vertigo/vkpr-oidc-demo:latest
network_mode: "host"
ports:
- 5443:5443
environment:
- AUTHORIZATION_ENDPOINT=http://keycloak.localdomain:8080/auth/realms/vkpr/protocol/openid-connect/auth
- TOKEN_ENDPOINT=http://keycloak.localdomain:8080/auth/realms/vkpr/protocol/openid-connect/token
- LOGOUT_ENDPOINT=http://keycloak.localdomain:8080/auth/realms/vkpr/protocol/openid-connect/logout
- JWKS_URI=http://keycloak.localdomain:8080/auth/realms/vkpr/protocol/openid-connect/certs
- REGISTRATION_ENDPOINT=http://keycloak.localdomain:8080/auth/realms/vkpr/clients-registrations/openid-connect
- DISABLE_HTTPS=true
- REVOCATION_ENDPOINT=
- ISSUER=http://keycloak.localdomain:8080/auth/realms/vkpr
- CLIENT_ID=oidc-demo
- CLIENT_SECRET=60e50da1-b492-4995-9574-763fa285456c
- REDIRECT_URI=http://localhost:5443/callback
- BASE_URL=http://localhost:5443
- VERIFY_SSL_SERVER=false
- DEBUG=true
jwt-example:
image: vertigo/vkpr-jwt-demo:latest
network_mode: "host"
ports:
- 8000:8000
environment:
- KEYCLOAK_AUTH_URL=http://vkpr-keycloak-http.default.svc/auth
- KEYCLOAK_REALM=springboot
- KEYCLOAK_CLIENT_ID=springboot-client
- KEYCLOAK_CLIENT_SECRET=e28e961b-2f86-4877-a696-b76cd231105
3 changes: 3 additions & 0 deletions examples/keycloak/reader.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
path "/secret/*" {
capabilities = ["read", "list"]
}
Loading

0 comments on commit 3e714b0

Please sign in to comment.