CloudDefense.AI
Search
K

Install CloudDefense Helm on a Kubernetes Cluster

Prerequisite

A kubernetes cluster whose nodes have to linux/amd64 architecture

Development Environment

  • Helm (v3 or above)
  • Kubernetes Cluster (kubectl)
    • Minimum Requirement - 1 Node (2 vCPU 8 GB RAM)
    • Recommended Requirements - 2 Nodes (2 vCPUs 16 GB RAM)

Production Environment

  • Helm (v3 or above)
  • Managed Postgres Instance for ex. AWS RDS (db.r5.large)
  • Kubernetes Cluster (kubectl) On Demand Nodes in Node Groups with Labels
Node Groups Node Type
Node Groups Node Type
Node Groups
Node Type
Level
Min Nodes
Max Nodes
external
t3.medium (2vCPU 4GB)
on-demand
1
4
auth
t3.medium (2vCPUs 4GB)
on-demand
1
4
api
c5.large (2vCPUs 4GB)
on-demand
1
4
web
t3.medium (2vCPUs 2GB)
on-demand
1
4
job
C6i.large (2vCPUs 4GB)
spot
1
4

Install Cluster Auto-Scaler

Install Kafka

Download the kafka helm repo (bitnami)
```
helm repo add bitnami https://charts.bitnami.com/bitnami
`
Install kafka helm
values.yaml
```
nodeSelector:
label: external
```
```
helm install kafka bitnami/kafka -f values.yaml -–debug
```

Install CloudDefense Helm

  1. 1.
    clone https://github.com/CloudDefenseAI/charts create roles, role binding and service accounts
```
kubectl apply -f cdefense/rbac
```
2. create secrets
```
kubectl apply -f cdefense/secrets
```
3. add helm repo
```
helm repo add cdefense https://clouddefenseai.github.io/charts/
```
4. Install cdefense
```
helm install cdefense cdefense/cdefense --debug
```
4. update/upgrade
```
helm upgrade cdefense cdefense/cdefense
```

Configure CloudDefense Helm for SSO

In order to sign in with different identity providers (for ex. github), create ID and secrets

Step 1: Create id, secrets for github

  1. 2.
    Create a New OAuth App
  2. 3.
    Homepage URL is the base_url
  3. 4.
    Authorization callback URL is https://{base_url}/auth/realms/cdefense/broker/github/endpoint

Create id, secrets for gitlab

Create id, secrets for bitbucket

Create id, secrets of Microsoft

Create secrets on kubernetes cluster
  1. 1.
    Create a secret for authservice or use a yaml file
apiVersion: v1
kind: Secret
metadata:
name: authservice-secrets
type: Opaque
stringData:
SENDGRID_KEY:
GOOGLE_CLIENT_ID:
GOOGLE_CLIENT_SECRET:
GITHUB_CLIENT_ID:
GITHUB_CLIENT_SECRET:
GITLAB_APPLICATION_ID:
GITLAB_APPLICATION_SECRET:
BITBUCKET_KEY:
BITBUCKET_SECRET:
MICROSOFT_CLIENT_ID:
MICROSOFT_CLIENT_SECRET:
2. Restart authservice pod
kubectl apply -f authservice-secrets.yaml

Configure CloudDefense Helm for Importing Repositories

Debugging and Troubleshooting
Pod Description Steps