Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Initial service catalog setup #8

Merged
merged 131 commits into from
Dec 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
cadc3aa
initial catalog setup
floreks Dec 9, 2024
8075a56
update airbyte pr automation
floreks Dec 9, 2024
6a94b45
update catalogs setup
floreks Dec 9, 2024
22b440c
update catalog
floreks Dec 9, 2024
658579a
remove project ref from catalog
floreks Dec 9, 2024
3f4a048
update data setup
floreks Dec 9, 2024
1b68d58
update airbyte scm connection
floreks Dec 9, 2024
88fb273
restore scm connection
floreks Dec 9, 2024
70f9ae8
remove namespace from cluster-scoped resources
floreks Dec 9, 2024
d061c58
update airbyte
floreks Dec 9, 2024
39d6e5f
fix tf error for sensitive output
floreks Dec 10, 2024
19c0b72
update airbyte service
floreks Dec 10, 2024
ef1c170
update airbyte tf config
floreks Dec 10, 2024
e930356
update airbyte pr automation
floreks Dec 11, 2024
615f7f0
update airbyte pr automation
floreks Dec 11, 2024
a62ca3a
update airbyte pr automation
floreks Dec 11, 2024
e9162aa
update airbyte pr automation
floreks Dec 11, 2024
624abc8
add security catalog
maciaszczykm Dec 11, 2024
0f9c376
add trivy helm repo and readme
maciaszczykm Dec 11, 2024
6f640cd
add trivy pr automation
maciaszczykm Dec 11, 2024
78dab17
add trivy service
maciaszczykm Dec 11, 2024
dde16ed
add trivy values
maciaszczykm Dec 11, 2024
dab969c
add trivy config
maciaszczykm Dec 11, 2024
7c89796
fix trivy config
maciaszczykm Dec 11, 2024
3651f7e
fix trivy config
maciaszczykm Dec 11, 2024
470cfb8
fix trivy config
maciaszczykm Dec 11, 2024
ea1f688
fix trivy config
maciaszczykm Dec 11, 2024
74fb0b2
fix trivy config
maciaszczykm Dec 11, 2024
ae58559
fix trivy config
maciaszczykm Dec 11, 2024
d1ebf01
add helm repository
maciaszczykm Dec 11, 2024
7199384
update trivy version
maciaszczykm Dec 11, 2024
9b5508e
add opa gatekeeper
maciaszczykm Dec 11, 2024
6d35a20
remove unused values ref
maciaszczykm Dec 12, 2024
2fd9162
add gatekeeper services
maciaszczykm Dec 12, 2024
081236f
add gatekeeper bundles
maciaszczykm Dec 12, 2024
c6a49f5
update pr messages
maciaszczykm Dec 12, 2024
bb5ee27
add dagster repo
maciaszczykm Dec 12, 2024
3f2c7dd
add dagster pr automation and readme
maciaszczykm Dec 12, 2024
26930a4
update airbyte setup
floreks Dec 12, 2024
a3be76c
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 12, 2024
0745b3c
fix dagster catalog ref
maciaszczykm Dec 12, 2024
370406c
Merge remote-tracking branch 'origin/sebastian/prod-2981-set-up-catal…
maciaszczykm Dec 12, 2024
9b282bb
update airbyte setup
floreks Dec 12, 2024
bdd38f9
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 12, 2024
806da04
update airbyte setup
floreks Dec 12, 2024
b65e54b
adding gafana under devops catlog
seemywingz Dec 12, 2024
a334411
testing grafana values
seemywingz Dec 12, 2024
b64c3a8
Merge branch 'PROD-2995/data-catalog-grafana' into sebastian/prod-298…
seemywingz Dec 12, 2024
4a1df52
adding devops catalog
seemywingz Dec 12, 2024
ad75ea1
update grafana PRA
seemywingz Dec 12, 2024
c9c9b7b
update grafana PRA
seemywingz Dec 12, 2024
ffc057d
update grafana PRA
seemywingz Dec 12, 2024
63f68b8
update airbyte setup
floreks Dec 13, 2024
b55bef8
reafactor gatekeeper setup
maciaszczykm Dec 13, 2024
dcc32fd
Merge remote-tracking branch 'origin/sebastian/prod-2981-set-up-catal…
maciaszczykm Dec 13, 2024
4c86010
remove opa and trivy
maciaszczykm Dec 13, 2024
ac772d3
remove namespace from cluster scoper resources
maciaszczykm Dec 13, 2024
2bf3a8d
fix repo ref
maciaszczykm Dec 13, 2024
f5104d0
update gatekeeper pr
maciaszczykm Dec 13, 2024
2abf218
update gatekeeper pr
maciaszczykm Dec 13, 2024
50080f9
update trivy pr
maciaszczykm Dec 13, 2024
e64a8a2
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 13, 2024
ffe5195
remove identifiers
maciaszczykm Dec 13, 2024
eacca8e
update dagster config
maciaszczykm Dec 13, 2024
0f8d6e4
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 13, 2024
244a6c5
update airbyte setup
floreks Dec 13, 2024
7c325a3
remove gatekeeper
maciaszczykm Dec 13, 2024
24ea969
update dagster
maciaszczykm Dec 13, 2024
9f9d3e7
update airbyte setup
floreks Dec 13, 2024
365daa9
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 13, 2024
200d83f
update dagster
maciaszczykm Dec 13, 2024
b34eec3
Merge remote-tracking branch 'origin/sebastian/prod-2981-set-up-catal…
maciaszczykm Dec 13, 2024
505dae3
add missing providers
maciaszczykm Dec 13, 2024
df3213b
update airbyte setup
floreks Dec 13, 2024
e6491a3
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 13, 2024
cc59681
update cluster name
maciaszczykm Dec 13, 2024
396c7c8
add infra catalog with cluster creator pr automation
floreks Dec 13, 2024
2297088
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 13, 2024
a5b4ac9
update cluster setup
floreks Dec 13, 2024
36b0343
update cluster setup
floreks Dec 13, 2024
d57c9e1
update cluster setup
floreks Dec 13, 2024
d22e00d
update cluster setup
floreks Dec 13, 2024
c5c7450
update cluster setup
floreks Dec 13, 2024
64f400f
update cluster setup
floreks Dec 13, 2024
1710c14
add region to cluster configuration
floreks Dec 13, 2024
b27ba15
remove default region from cluster configuration
floreks Dec 13, 2024
7d561e8
updatew dagster tf
maciaszczykm Dec 13, 2024
08ff360
Merge remote-tracking branch 'origin/sebastian/prod-2981-set-up-catal…
maciaszczykm Dec 13, 2024
3873240
updatew dagster tf
maciaszczykm Dec 13, 2024
73e5f43
disable cluster pr automation for now
floreks Dec 13, 2024
06a734d
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 13, 2024
ea9292d
disable dagster secret
maciaszczykm Dec 13, 2024
2d4e393
set PR automatin for EKS cluster w/ external credentials
floreks Dec 16, 2024
10aafbf
update eks cluster PR automation icon
floreks Dec 16, 2024
fb43f6a
grafana tls secret name
seemywingz Dec 16, 2024
321e175
fix stack ref
maciaszczykm Dec 17, 2024
bd3ca6d
update dagster
maciaszczykm Dec 17, 2024
a59bfb0
add mlflow
floreks Dec 17, 2024
2eaf0f7
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 17, 2024
bc0799d
update dagster oauth config
maciaszczykm Dec 17, 2024
981db6b
Merge remote-tracking branch 'origin/sebastian/prod-2981-set-up-catal…
maciaszczykm Dec 17, 2024
55c661f
update dagster config
maciaszczykm Dec 17, 2024
546b4f9
update dagster config
maciaszczykm Dec 17, 2024
b7879a4
update mlflow
floreks Dec 17, 2024
1eaf21b
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 17, 2024
9690829
update compute log manager
maciaszczykm Dec 17, 2024
eb004c5
Merge remote-tracking branch 'origin/sebastian/prod-2981-set-up-catal…
maciaszczykm Dec 17, 2024
6ddd426
reformat code
maciaszczykm Dec 17, 2024
de23393
reformat code
maciaszczykm Dec 17, 2024
085bb3d
add dagster secret
maciaszczykm Dec 17, 2024
7a85d7c
add dagster secret
maciaszczykm Dec 17, 2024
e558ea2
add dagster secret
maciaszczykm Dec 17, 2024
826ed9b
update mlflow setup
floreks Dec 17, 2024
c3aecd1
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 17, 2024
2cae7f6
add dagster secret
maciaszczykm Dec 17, 2024
f080a6f
Merge branch 'sebastian/prod-2981-set-up-catalog-pipeline' of github.…
floreks Dec 17, 2024
ebd3ca7
adding kubecost
seemywingz Dec 17, 2024
8a86d2c
kubecost icon
seemywingz Dec 17, 2024
b93b54e
fix kubecost icon
michaeljguarino Dec 18, 2024
bd89aca
remove commented code
maciaszczykm Dec 18, 2024
a63e75a
allow configuring infrastructure stack cluster
floreks Dec 18, 2024
fa0ea19
add missing service to pra
maciaszczykm Dec 18, 2024
8396a63
Merge remote-tracking branch 'origin/sebastian/prod-2981-set-up-catal…
maciaszczykm Dec 18, 2024
8d8cef7
add missing service to pra
maciaszczykm Dec 18, 2024
f6ee11e
fix gh check
floreks Dec 20, 2024
d792d79
fix gh check
floreks Dec 20, 2024
34cd6b8
fix gh check
floreks Dec 20, 2024
b0be310
fix gh check
floreks Dec 20, 2024
f7b3c2e
fix gh check
floreks Dec 20, 2024
5d4fdd8
fix gh check
floreks Dec 20, 2024
d32c2d4
fix gh check
floreks Dec 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test-catalogs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ jobs:
- uses: extractions/setup-just@v2
- uses: pluralsh/[email protected]
with:
vsn: 0.9.24
vsn: 0.11.0

- run: just test
4 changes: 2 additions & 2 deletions catalogs/data/airbyte/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This is a baseline, prod ready airbyte installation using Plural. It includes a
* RDS/Google Cloud Sql, Azure Flexible Server to handle postgres. This gives you a robust RDBMS service to hold airbyte's core transactional data.
* Plural OIDC to handle authentication to Airbyte. Airbyte does not support this natively, and so we use oauth-proxy as a middleware to handle authentication.

In addtion, there are a few common customizations you might want to do.
In addition, there are a few common customizations you might want to do.

## Configure Basic Auth

Expand Down Expand Up @@ -80,4 +80,4 @@ when building your application.

## Contributing

If there are any features or documentation you'd like to add to this setup, please feel free to contribute back at https://github.com/pluralsh/scaffolds
If there are any features or documentation you'd like to add to this setup, please feel free to contribute back at https://github.com/pluralsh/scaffolds
20 changes: 20 additions & 0 deletions catalogs/data/airbyte/airbyte-raw-servicedeployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: deployments.plural.sh/v1alpha1
kind: ServiceDeployment
metadata:
name: airbyte-raw-{{ context.cluster }}
namespace: apps
spec:
namespace: airbyte
git:
folder: services/apps/airbyte
ref: main
repositoryRef:
kind: GitRepository
name: infra
namespace: infra
configuration:
hostname: {{ context.hostname }}
clusterRef:
kind: Cluster
name: {{ context.cluster }}
namespace: infra
35 changes: 35 additions & 0 deletions catalogs/data/airbyte/airbyte-servicedeployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
apiVersion: deployments.plural.sh/v1alpha1
kind: ServiceDeployment
metadata:
name: airbyte-{{ context.cluster }}
namespace: apps
spec:
namespace: airbyte
git:
folder: helm/airbyte/{{ context.cluster }}
ref: main
repositoryRef:
kind: GitRepository
name: infra
namespace: infra
helm:
version: "1.x.x"
chart: airbyte
release: airbyte
ignoreHooks: false
url: https://airbytehq.github.io/helm-charts
valuesFiles:
- airbyte.yaml.liquid
imports:
- stackRef:
name: airbyte-{{ context.cluster }}
namespace: apps
configuration:
cluster: {{ context.cluster }}
hostname: {{ context.hostname }}
bucket: {{ context.bucket }}
region: {{ context.region }}
clusterRef:
kind: Cluster
name: {{ context.cluster }}
namespace: infra
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,21 @@ apiVersion: deployments.plural.sh/v1alpha1
kind: InfrastructureStack
metadata:
name: airbyte-{{ context.cluster }}
namespace: apps
spec:
detach: false
type: TERRAFORM
approval: true
manageState: true
actor: [email protected]
configuration:
version: '1.8'
git:
ref: main
folder: terraform/apps/airbyte/{{ context.cluster }}
repositoryRef:
name: infra
namespace: infra
configuration:
version: '1.8'
clusterRef:
name: mgmt
name: {{ context.stackCluster }}
namespace: infra
git:
ref: main
folder: terraform/apps/airbyte/{{ context.cloud }}
57 changes: 57 additions & 0 deletions catalogs/data/airbyte/helm/airbyte.yaml.liquid
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{% raw %}
{% assign imports_airbyte_key = 'airbyte-' | append: configuration.cluster %}

global:
deploymentMode: oss
edition: community

airbyteUrl: {{ configuration.hostname }}

storage:
type: S3
storageSecretName: airbyte-airbyte-secrets
s3:
region: {{ configuration.region }}
authenticationType: credentials
accessKeyId: {{ imports[imports_airbyte_key].access_key_id }}
accessKeyIdSecretKey: AWS_ACCESS_KEY_ID
secretAccessKey: {{ imports[imports_airbyte_key].secret_access_key }}
secretAccessKeySecretKey: AWS_SECRET_ACCESS_KEY
bucket:
log: {{ configuration.bucket }}
state: {{ configuration.bucket }}
workloadOutput: {{ configuration.bucket }}

database:
type: external
database: airbyte
host: {{ imports[imports_airbyte_key].postgres_host }}
port: "5432"
secretName: airbyte-airbyte-secrets
user: airbyte
userSecretKey: DATABASE_USER
password: {{ imports[imports_airbyte_key].postgres_password }}
passwordSecretKey: DATABASE_PASSWORD

postgresql:
enabled: false

externalDatabase:
database: airbyte
host: {{ imports[imports_airbyte_key].postgres_host }}
user: airbyte
existingSecret: ~
password: {{ imports[imports_airbyte_key].postgres_password }}
port: 5432

webapp:
ingress:
enabled: false
podAnnotations:
security.plural.sh/oauth-env-secret: airbyte-proxy-config
{% if configuration["basicAuth"] %}
security.plural.sh/htpasswd-secret: httpaswd-users
{% endif %}
podLabels:
security.plural.sh/inject-oauth-sidecar: "true"
{% endraw %}
28 changes: 28 additions & 0 deletions catalogs/data/airbyte/helm/oauth-proxy-config.yaml.liquid
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{% raw %}
{% assign imports_airbyte_key = 'airbyte-' | append: configuration.cluster %}

service:
name: airbyte-oauth2-proxy
selector:
app.kubernetes.io/instance: airbyte
app.kubernetes.io/name: webapp

secret:
clientID: {{ imports[imports_airbyte_key].oidc_client_id }}
clientSecret: {{ imports[imports_airbyte_key].oidc_client_secret }}
cookieSecret: {{ imports[imports_airbyte_key].oidc_cookie_secret }}
issuer: https://oidc.plural.sh/
upstream: http://localhost:8080
name: airbyte-proxy-config
env:
OAUTH2_PROXY_UPSTREAM_TIMEOUT: '120s'

{% if configuration["basicAuth"] %}
{% assign basicAuth = configuration["basicAuth"] | from_json %}
users:
{% for user in basicAuth %}
{{ user[0] }}: {{ user[1] }}
{% endfor %}
{% endif %}

{% endraw %}
89 changes: 0 additions & 89 deletions catalogs/data/airbyte/helm/values.yaml.liquid

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@
apiVersion: deployments.plural.sh/v1alpha1
kind: ServiceDeployment
metadata:
name: airbyte-{{ context.cluster }}
namespace: infra
name: airbyte-oauth-proxy-config-{{ context.cluster }}
namespace: apps
spec:
namespace: airbyte
git:
folder: helm/airbyte
folder: helm/airbyte/{{ context.cluster }}
ref: main
repositoryRef:
kind: GitRepository
name: infra
namespace: infra
helm:
version: "x.x.x"
chart: airbyte
url: https://app.plural.sh/cm/airbyte
chart: oidc-config
url: https://pluralsh.github.io/module-library
valuesFiles:
- {{ context.cluster }}.yaml.liquid
- oauth-proxy-config.yaml.liquid
imports:
- stackRef:
name: airbyte-{{ context.cluster }}
namespace: infra
namespace: apps
configuration:
cluster: {{ context.cluster }}
hostname: {{ context.hostname }}
clusterRef:
kind: Cluster
name: {{ context.cluster }}
Expand Down
33 changes: 33 additions & 0 deletions catalogs/data/airbyte/services/oauth-proxy-ingress.yaml.liquid
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{% raw %}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: airbyte-webapp-proxy
namespace: airbyte
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
kubernetes.io/tls-acme: "true"
# Extend timeout to allow long running queries.
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
ingressClassName: nginx
rules:
- host: {{ configuration.hostname }}
http:
paths:
- backend:
service:
name: airbyte-oauth2-proxy
port:
number: 80
path: /.*
pathType: ImplementationSpecific
tls:
- hosts:
- {{ configuration.hostname }}
secretName: airbyte-tls
{% endraw %}
8 changes: 6 additions & 2 deletions catalogs/data/airbyte/terraform/aws/iam.tf
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ resource "aws_iam_policy" "airbyte" {
}

resource "aws_iam_user" "airbyte" {
name = "${var.cluster_name}-airbyte"
name = "${data.plural_cluster.cluster.name}-airbyte"

depends_on = [ data.plural_cluster.cluster ]
}

resource "aws_iam_access_key" "airbyte" {
Expand All @@ -27,7 +29,9 @@ data "aws_iam_policy_document" "airbyte" {
}

resource "aws_iam_policy_attachment" "airbyte-user" {
name = "${var.cluster_name}-airbyte-policy"
name = "${data.plural_cluster.cluster.name}-airbyte-policy"
users = [aws_iam_user.airbyte.name]
policy_arn = aws_iam_policy.airbyte.arn

depends_on = [ data.plural_cluster.cluster ]
}
4 changes: 2 additions & 2 deletions catalogs/data/airbyte/terraform/aws/oidc.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
resource "random_password" "oidc_cookie" {
length = 20
length = 24
min_lower = 1
min_numeric = 1
min_upper = 1
Expand All @@ -12,4 +12,4 @@ resource "plural_oidc_provider" "airbyte" {
type = "PLURAL"
description = "OIDC provider for airbyte deployed to the {{ context.cluster }} cluster"
redirect_uris = ["https://{{ context.hostname }}/oauth2/callback"]
}
}
Loading
Loading