diff --git a/.github/workflows/bootstrap-argocd.yml b/.github/workflows/bootstrap-argocd.yml index f0d42ae..26b455b 100644 --- a/.github/workflows/bootstrap-argocd.yml +++ b/.github/workflows/bootstrap-argocd.yml @@ -26,10 +26,10 @@ jobs: include: - environment: dev cluster: eks-dev-cluster - # - environment: staging - # cluster: eks-staging-cluster - # - environment: prod - # cluster: eks-prod-cluster + - environment: staging + cluster: eks-staging-cluster + - environment: prod + cluster: eks-prod-cluster steps: - uses: actions/checkout@v4 diff --git a/apps/order-service/overlays/dev/kustomization.yaml b/apps/order-service/overlays/dev/kustomization.yaml index 589e46e..f8f30ac 100644 --- a/apps/order-service/overlays/dev/kustomization.yaml +++ b/apps/order-service/overlays/dev/kustomization.yaml @@ -10,7 +10,7 @@ namespace: dev images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/order-service newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/order-service - newTag: 75c566e3063d58803f614facda8a3a6e0df6e812 + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 replicas: - count: 1 diff --git a/apps/order-service/overlays/prod/external-secret.yaml b/apps/order-service/overlays/prod/external-secret.yaml index e0561d9..6bc52ba 100644 --- a/apps/order-service/overlays/prod/external-secret.yaml +++ b/apps/order-service/overlays/prod/external-secret.yaml @@ -2,7 +2,39 @@ apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: order-db-secret + namespace: prod + spec: - dataFrom: - - extract: - key: /prod/order/db \ No newline at end of file + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: order-db-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /prod/order/db + property: host + + - secretKey: port + remoteRef: + key: /prod/order/db + property: port + + - secretKey: database + remoteRef: + key: /prod/order/db + property: database + + - secretKey: username + remoteRef: + key: /prod/order/db + property: username + + - secretKey: password + remoteRef: + key: /prod/order/db + property: password \ No newline at end of file diff --git a/apps/order-service/overlays/prod/image-patch.yaml b/apps/order-service/overlays/prod/image-patch.yaml deleted file mode 100644 index 6908d83..0000000 --- a/apps/order-service/overlays/prod/image-patch.yaml +++ /dev/null @@ -1,4 +0,0 @@ -images: - - name: order-service - newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/order-service - newTag: ${GITHUB_SHA} \ No newline at end of file diff --git a/apps/order-service/overlays/prod/kustomization.yaml b/apps/order-service/overlays/prod/kustomization.yaml index 0cfc34d..5c35700 100644 --- a/apps/order-service/overlays/prod/kustomization.yaml +++ b/apps/order-service/overlays/prod/kustomization.yaml @@ -1,14 +1,18 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + resources: - - ../../base - - external-secret.yaml +- ../../base +- external-secret.yaml namespace: prod images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/order-service - newTag: ${GITHUB_SHA} - + newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/order-service + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 replicas: - - name: order-service - count: 1 +- count: 1 + name: order-service + diff --git a/apps/order-service/overlays/staging/external-secret.yaml b/apps/order-service/overlays/staging/external-secret.yaml index 2c9478f..e8d7c57 100644 --- a/apps/order-service/overlays/staging/external-secret.yaml +++ b/apps/order-service/overlays/staging/external-secret.yaml @@ -2,7 +2,39 @@ apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: order-db-secret + namespace: staging + spec: - dataFrom: - - extract: - key: /staging/order/db \ No newline at end of file + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: order-db-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /staging/order/db + property: host + + - secretKey: port + remoteRef: + key: /staging/order/db + property: port + + - secretKey: database + remoteRef: + key: /staging/order/db + property: database + + - secretKey: username + remoteRef: + key: /staging/order/db + property: username + + - secretKey: password + remoteRef: + key: /staging/order/db + property: password \ No newline at end of file diff --git a/apps/order-service/overlays/staging/image-patch.yaml b/apps/order-service/overlays/staging/image-patch.yaml deleted file mode 100644 index 2905432..0000000 --- a/apps/order-service/overlays/staging/image-patch.yaml +++ /dev/null @@ -1,5 +0,0 @@ -images: - - name: order-service - newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/order-service - newTag: ${GITHUB_SHA} - diff --git a/apps/order-service/overlays/staging/kustomization.yaml b/apps/order-service/overlays/staging/kustomization.yaml index 92a016b..bcb7c71 100644 --- a/apps/order-service/overlays/staging/kustomization.yaml +++ b/apps/order-service/overlays/staging/kustomization.yaml @@ -1,14 +1,18 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + resources: - - ../../base - - external-secret.yaml +- ../../base +- external-secret.yaml namespace: staging images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/order-service - newTag: ${GITHUB_SHA} - + newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/order-service + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 replicas: - - name: order-service - count: 1 \ No newline at end of file +- count: 1 + name: order-service + diff --git a/apps/payment-service/overlays/dev/kustomization.yaml b/apps/payment-service/overlays/dev/kustomization.yaml index cac6480..e321b21 100644 --- a/apps/payment-service/overlays/dev/kustomization.yaml +++ b/apps/payment-service/overlays/dev/kustomization.yaml @@ -7,7 +7,7 @@ namespace: dev images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/payment-service newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/payment-service - newTag: 75c566e3063d58803f614facda8a3a6e0df6e812 + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 diff --git a/apps/payment-service/overlays/prod/external-secret.yaml b/apps/payment-service/overlays/prod/external-secret.yaml index 94849aa..58e0682 100644 --- a/apps/payment-service/overlays/prod/external-secret.yaml +++ b/apps/payment-service/overlays/prod/external-secret.yaml @@ -1,8 +1,40 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: payment-db-secret + namespace: prod + spec: - dataFrom: - - extract: - key: /prod/payment/db \ No newline at end of file + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: payment-db-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /prod/payment/db + property: host + + - secretKey: port + remoteRef: + key: /prod/payment/db + property: port + + - secretKey: database + remoteRef: + key: /prod/payment/db + property: database + + - secretKey: username + remoteRef: + key: /prod/payment/db + property: username + + - secretKey: password + remoteRef: + key: /prod/payment/db + property: password \ No newline at end of file diff --git a/apps/payment-service/overlays/prod/image-patch.yaml b/apps/payment-service/overlays/prod/image-patch.yaml deleted file mode 100644 index fcf0a06..0000000 --- a/apps/payment-service/overlays/prod/image-patch.yaml +++ /dev/null @@ -1,4 +0,0 @@ -images: - - name: payment-service - newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/payment-service - newTag: ${GITHUB_SHA} diff --git a/apps/payment-service/overlays/prod/kustomization.yaml b/apps/payment-service/overlays/prod/kustomization.yaml index c00d497..0f3f3b8 100644 --- a/apps/payment-service/overlays/prod/kustomization.yaml +++ b/apps/payment-service/overlays/prod/kustomization.yaml @@ -1,14 +1,18 @@ resources: - - ../../base - - external-secret.yaml +- ../../base +- external-secret.yaml namespace: prod images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/payment-service - newTag: ${GITHUB_SHA} + newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/payment-service + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 + replicas: - - name: payment-service - count: 1 \ No newline at end of file +- count: 1 + name: payment-service +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization diff --git a/apps/payment-service/overlays/staging/external-secret.yaml b/apps/payment-service/overlays/staging/external-secret.yaml index bf4e4ff..e9351ad 100644 --- a/apps/payment-service/overlays/staging/external-secret.yaml +++ b/apps/payment-service/overlays/staging/external-secret.yaml @@ -1,8 +1,40 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: payment-db-secret + namespace: staging + spec: - dataFrom: - - extract: - key: /staging/payment/db \ No newline at end of file + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: payment-db-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /staging/payment/db + property: host + + - secretKey: port + remoteRef: + key: /staging/payment/db + property: port + + - secretKey: database + remoteRef: + key: /staging/payment/db + property: database + + - secretKey: username + remoteRef: + key: /staging/payment/db + property: username + + - secretKey: password + remoteRef: + key: /staging/payment/db + property: password \ No newline at end of file diff --git a/apps/payment-service/overlays/staging/image-patch.yaml b/apps/payment-service/overlays/staging/image-patch.yaml deleted file mode 100644 index fcf0a06..0000000 --- a/apps/payment-service/overlays/staging/image-patch.yaml +++ /dev/null @@ -1,4 +0,0 @@ -images: - - name: payment-service - newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/payment-service - newTag: ${GITHUB_SHA} diff --git a/apps/payment-service/overlays/staging/kustomization.yaml b/apps/payment-service/overlays/staging/kustomization.yaml index d46ecaf..57735fb 100644 --- a/apps/payment-service/overlays/staging/kustomization.yaml +++ b/apps/payment-service/overlays/staging/kustomization.yaml @@ -1,14 +1,18 @@ resources: - - ../../base - - external-secret.yaml +- ../../base +- external-secret.yaml namespace: staging images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/payment-service - newTag: ${GITHUB_SHA} + newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/payment-service + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 + replicas: - - name: payment-service - count: 1 \ No newline at end of file +- count: 1 + name: payment-service +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization diff --git a/apps/product-service/overlays/dev/kustomization.yaml b/apps/product-service/overlays/dev/kustomization.yaml index 8dd3f3d..f3d59b7 100644 --- a/apps/product-service/overlays/dev/kustomization.yaml +++ b/apps/product-service/overlays/dev/kustomization.yaml @@ -7,7 +7,7 @@ namespace: dev images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/product-service newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/product-service - newTag: 75c566e3063d58803f614facda8a3a6e0df6e812 + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 diff --git a/apps/product-service/overlays/prod/external-secret.yaml b/apps/product-service/overlays/prod/external-secret.yaml index 2432b3f..6b743c5 100644 --- a/apps/product-service/overlays/prod/external-secret.yaml +++ b/apps/product-service/overlays/prod/external-secret.yaml @@ -1,8 +1,40 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: product-db-secret + namespace: prod + spec: - dataFrom: - - extract: - key: /prod/product/db \ No newline at end of file + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: product-db-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /prod/product/db + property: host + + - secretKey: port + remoteRef: + key: /prod/product/db + property: port + + - secretKey: database + remoteRef: + key: /prod/product/db + property: database + + - secretKey: username + remoteRef: + key: /prod/product/db + property: username + + - secretKey: password + remoteRef: + key: /prod/product/db + property: password \ No newline at end of file diff --git a/apps/product-service/overlays/prod/image-patch.yaml b/apps/product-service/overlays/prod/image-patch.yaml deleted file mode 100644 index e3acb5f..0000000 --- a/apps/product-service/overlays/prod/image-patch.yaml +++ /dev/null @@ -1,4 +0,0 @@ -images: - - name: product-service - newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/product-service - newTag: ${GITHUB_SHA} diff --git a/apps/product-service/overlays/prod/kustomization.yaml b/apps/product-service/overlays/prod/kustomization.yaml index 35cb398..26c93d1 100644 --- a/apps/product-service/overlays/prod/kustomization.yaml +++ b/apps/product-service/overlays/prod/kustomization.yaml @@ -1,13 +1,18 @@ resources: - - ../../base +- ../../base +- external-secret.yaml namespace: prod images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/product-service - newTag: ${GITHUB_SHA} + newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/product-service + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 + replicas: - - name: product-service - count: 1 \ No newline at end of file +- count: 1 + name: product-service +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization diff --git a/apps/product-service/overlays/staging/external-secret.yaml b/apps/product-service/overlays/staging/external-secret.yaml index 0bba376..79c5829 100644 --- a/apps/product-service/overlays/staging/external-secret.yaml +++ b/apps/product-service/overlays/staging/external-secret.yaml @@ -1,8 +1,40 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: product-db-secret + namespace: staging + spec: - dataFrom: - - extract: - key: /staging/product/db \ No newline at end of file + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: product-db-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /staging/product/db + property: host + + - secretKey: port + remoteRef: + key: /staging/product/db + property: port + + - secretKey: database + remoteRef: + key: /staging/product/db + property: database + + - secretKey: username + remoteRef: + key: /staging/product/db + property: username + + - secretKey: password + remoteRef: + key: /staging/product/db + property: password \ No newline at end of file diff --git a/apps/product-service/overlays/staging/image-patch.yaml b/apps/product-service/overlays/staging/image-patch.yaml deleted file mode 100644 index e3acb5f..0000000 --- a/apps/product-service/overlays/staging/image-patch.yaml +++ /dev/null @@ -1,4 +0,0 @@ -images: - - name: product-service - newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/product-service - newTag: ${GITHUB_SHA} diff --git a/apps/product-service/overlays/staging/kustomization.yaml b/apps/product-service/overlays/staging/kustomization.yaml index cfcc874..2f4d55c 100644 --- a/apps/product-service/overlays/staging/kustomization.yaml +++ b/apps/product-service/overlays/staging/kustomization.yaml @@ -1,14 +1,18 @@ resources: - - ../../base - - external-secret.yaml +- ../../base +- external-secret.yaml namespace: staging images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/product-service - newTag: ${GITHUB_SHA} + newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/product-service + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 + replicas: - - name: product-service - count: 1 \ No newline at end of file +- count: 1 + name: product-service +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization diff --git a/apps/user-service/overlays/dev/kustomization.yaml b/apps/user-service/overlays/dev/kustomization.yaml index 578738a..4c80e0d 100644 --- a/apps/user-service/overlays/dev/kustomization.yaml +++ b/apps/user-service/overlays/dev/kustomization.yaml @@ -7,7 +7,7 @@ namespace: dev images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/user-service newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/user-service - newTag: 75c566e3063d58803f614facda8a3a6e0df6e812 + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 diff --git a/apps/user-service/overlays/prod/external-secret.yaml b/apps/user-service/overlays/prod/external-secret.yaml index e3b078f..383168d 100644 --- a/apps/user-service/overlays/prod/external-secret.yaml +++ b/apps/user-service/overlays/prod/external-secret.yaml @@ -1,8 +1,40 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: user-db-secret + namespace: prod + spec: - dataFrom: - - extract: - key: /prod/user/db \ No newline at end of file + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: user-db-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /prod/user/db + property: host + + - secretKey: port + remoteRef: + key: /prod/user/db + property: port + + - secretKey: database + remoteRef: + key: /prod/user/db + property: database + + - secretKey: username + remoteRef: + key: /prod/user/db + property: username + + - secretKey: password + remoteRef: + key: /prod/user/db + property: password \ No newline at end of file diff --git a/apps/user-service/overlays/prod/image-patch.yaml b/apps/user-service/overlays/prod/image-patch.yaml deleted file mode 100644 index 6d112c7..0000000 --- a/apps/user-service/overlays/prod/image-patch.yaml +++ /dev/null @@ -1,4 +0,0 @@ -images: - - name: user-service - newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/user-service - newTag: ${GITHUB_SHA} diff --git a/apps/user-service/overlays/prod/kustomization.yaml b/apps/user-service/overlays/prod/kustomization.yaml index 112105d..98c9dbd 100644 --- a/apps/user-service/overlays/prod/kustomization.yaml +++ b/apps/user-service/overlays/prod/kustomization.yaml @@ -1,14 +1,18 @@ resources: - - ../../base - - external-secret.yaml +- ../../base +- external-secret.yaml namespace: prod images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/user-service - newTag: ${GITHUB_SHA} + newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/user-service + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 + replicas: - - name: user-service - count: 1 \ No newline at end of file +- count: 1 + name: user-service +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization diff --git a/apps/user-service/overlays/staging/external-secret.yaml b/apps/user-service/overlays/staging/external-secret.yaml index b7f666f..c26cba3 100644 --- a/apps/user-service/overlays/staging/external-secret.yaml +++ b/apps/user-service/overlays/staging/external-secret.yaml @@ -1,8 +1,40 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: user-db-secret + namespace: staging + spec: - dataFrom: - - extract: - key: /staging/user/db \ No newline at end of file + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: user-db-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /staging/user/db + property: host + + - secretKey: port + remoteRef: + key: /staging/user/db + property: port + + - secretKey: database + remoteRef: + key: /staging/user/db + property: database + + - secretKey: username + remoteRef: + key: /staging/user/db + property: username + + - secretKey: password + remoteRef: + key: /staging/user/db + property: password \ No newline at end of file diff --git a/apps/user-service/overlays/staging/image-patch.yaml b/apps/user-service/overlays/staging/image-patch.yaml deleted file mode 100644 index 6d112c7..0000000 --- a/apps/user-service/overlays/staging/image-patch.yaml +++ /dev/null @@ -1,4 +0,0 @@ -images: - - name: user-service - newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/user-service - newTag: ${GITHUB_SHA} diff --git a/apps/user-service/overlays/staging/kustomization.yaml b/apps/user-service/overlays/staging/kustomization.yaml index b35f014..ccbbae4 100644 --- a/apps/user-service/overlays/staging/kustomization.yaml +++ b/apps/user-service/overlays/staging/kustomization.yaml @@ -1,14 +1,18 @@ resources: - - ../../base - - external-secret.yaml +- ../../base +- external-secret.yaml namespace: staging images: - name: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/user-service - newTag: ${GITHUB_SHA} + newName: 579871530627.dkr.ecr.us-east-1.amazonaws.com/ja-mics-ap/user-service + newTag: 28693b4fcc780e82605d4368b13dc437037b4567 + replicas: - - name: user-service - count: 1 \ No newline at end of file +- count: 1 + name: user-service +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization diff --git a/argocd/dev/applicationset-apps.yaml b/argocd/dev/applicationset-apps.yaml index 5c48ad1..a34c818 100644 --- a/argocd/dev/applicationset-apps.yaml +++ b/argocd/dev/applicationset-apps.yaml @@ -36,4 +36,5 @@ spec: selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true + \ No newline at end of file diff --git a/argocd/dev/applicationset-infra.yaml b/argocd/dev/applicationset-infra.yaml index 3204bb9..92b0a5d 100644 --- a/argocd/dev/applicationset-infra.yaml +++ b/argocd/dev/applicationset-infra.yaml @@ -34,4 +34,5 @@ spec: prune: true selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true + \ No newline at end of file diff --git a/argocd/dev/applicationset-monitoring.yaml b/argocd/dev/applicationset-monitoring.yaml index 643c001..f472a17 100644 --- a/argocd/dev/applicationset-monitoring.yaml +++ b/argocd/dev/applicationset-monitoring.yaml @@ -32,4 +32,5 @@ spec: syncPolicy: automated: prune: true - selfHeal: true \ No newline at end of file + selfHeal: true + \ No newline at end of file diff --git a/argocd/dev/kustomization.yaml b/argocd/dev/kustomization.yaml index e63013f..7c79629 100644 --- a/argocd/dev/kustomization.yaml +++ b/argocd/dev/kustomization.yaml @@ -4,4 +4,5 @@ kind: Kustomization resources: - applicationset-apps.yaml - applicationset-infra.yaml - - applicationset-monitoring.yaml \ No newline at end of file + - applicationset-monitoring.yaml + \ No newline at end of file diff --git a/argocd/dev/root-app.yaml b/argocd/dev/root-app.yaml index 91670e8..d315540 100644 --- a/argocd/dev/root-app.yaml +++ b/argocd/dev/root-app.yaml @@ -20,4 +20,5 @@ spec: syncPolicy: automated: prune: true - selfHeal: true \ No newline at end of file + selfHeal: true + \ No newline at end of file diff --git a/argocd/prod/applicationset-apps.yaml b/argocd/prod/applicationset-apps.yaml index 9ff2daa..350b479 100644 --- a/argocd/prod/applicationset-apps.yaml +++ b/argocd/prod/applicationset-apps.yaml @@ -36,4 +36,5 @@ spec: selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true + \ No newline at end of file diff --git a/argocd/prod/applicationset-infra.yaml b/argocd/prod/applicationset-infra.yaml index fdebd17..0ac0b6e 100644 --- a/argocd/prod/applicationset-infra.yaml +++ b/argocd/prod/applicationset-infra.yaml @@ -10,8 +10,8 @@ spec: - list: elements: - name: ingress - path: infrastructure/ingress/prod - namespace: kube-system + path: infrastructure/overlay/prod + namespace: prod template: metadata: @@ -32,4 +32,7 @@ spec: syncPolicy: automated: prune: true - selfHeal: true \ No newline at end of file + selfHeal: true + syncOptions: + - CreateNamespace=true + \ No newline at end of file diff --git a/argocd/prod/applicationset-monitoring.yaml b/argocd/prod/applicationset-monitoring.yaml new file mode 100644 index 0000000..15fc493 --- /dev/null +++ b/argocd/prod/applicationset-monitoring.yaml @@ -0,0 +1,36 @@ +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet + +metadata: + name: prod-monitoring + namespace: argocd + +spec: + generators: + - list: + elements: + - name: monitoring + path: platform/overlays/prod + namespace: prod + + template: + metadata: + name: "{{name}}-prod" + + spec: + project: default + + source: + repoURL: https://github.com/Emmy-github-webdev/Kubernetes-argocd.git + targetRevision: main + path: "{{path}}" + + destination: + server: https://kubernetes.default.svc + namespace: "{{namespace}}" + + syncPolicy: + automated: + prune: true + selfHeal: true + \ No newline at end of file diff --git a/argocd/prod/kustomization.yaml b/argocd/prod/kustomization.yaml new file mode 100644 index 0000000..3df27be --- /dev/null +++ b/argocd/prod/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - applicationset-apps.yaml + - applicationset-infra.yaml + - applicationset-monitoring.yaml + \ No newline at end of file diff --git a/argocd/prod/root-app.yaml b/argocd/prod/root-app.yaml index 52cb05b..a05ab19 100644 --- a/argocd/prod/root-app.yaml +++ b/argocd/prod/root-app.yaml @@ -20,4 +20,5 @@ spec: syncPolicy: automated: prune: true - selfHeal: true \ No newline at end of file + selfHeal: true + \ No newline at end of file diff --git a/argocd/staging/applicationset-apps.yaml b/argocd/staging/applicationset-apps.yaml index cee779a..ccf6ef7 100644 --- a/argocd/staging/applicationset-apps.yaml +++ b/argocd/staging/applicationset-apps.yaml @@ -36,4 +36,4 @@ spec: selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true \ No newline at end of file diff --git a/argocd/staging/applicationset-infra.yaml b/argocd/staging/applicationset-infra.yaml index 2abe761..ed61138 100644 --- a/argocd/staging/applicationset-infra.yaml +++ b/argocd/staging/applicationset-infra.yaml @@ -10,8 +10,8 @@ spec: - list: elements: - name: ingress - path: infrastructure/ingress/staging - namespace: kube-system + path: infrastructure/overlay/staging + namespace: staging template: metadata: @@ -32,4 +32,6 @@ spec: syncPolicy: automated: prune: true - selfHeal: true \ No newline at end of file + selfHeal: true + syncOptions: + - CreateNamespace=true \ No newline at end of file diff --git a/argocd/staging/applicationset-monitoring.yaml b/argocd/staging/applicationset-monitoring.yaml new file mode 100644 index 0000000..4d851b3 --- /dev/null +++ b/argocd/staging/applicationset-monitoring.yaml @@ -0,0 +1,35 @@ +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet + +metadata: + name: staging-monitoring + namespace: argocd + +spec: + generators: + - list: + elements: + - name: monitoring + path: platform/overlays/staging + namespace: staging + + template: + metadata: + name: "{{name}}-staging" + + spec: + project: default + + source: + repoURL: https://github.com/Emmy-github-webdev/Kubernetes-argocd.git + targetRevision: main + path: "{{path}}" + + destination: + server: https://kubernetes.default.svc + namespace: "{{namespace}}" + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/argocd/staging/kustomization.yaml b/argocd/staging/kustomization.yaml new file mode 100644 index 0000000..e63013f --- /dev/null +++ b/argocd/staging/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - applicationset-apps.yaml + - applicationset-infra.yaml + - applicationset-monitoring.yaml \ No newline at end of file diff --git a/argocd/staging/root-app.yaml b/argocd/staging/root-app.yaml index d1166ac..805d5f1 100644 --- a/argocd/staging/root-app.yaml +++ b/argocd/staging/root-app.yaml @@ -20,4 +20,4 @@ spec: syncPolicy: automated: prune: true - selfHeal: true \ No newline at end of file + selfHeal: true \ No newline at end of file diff --git a/infrastructure/overlay/dev/ingress.yaml b/infrastructure/overlay/dev/ingress.yaml index 13ad1f8..0ce04b3 100644 --- a/infrastructure/overlay/dev/ingress.yaml +++ b/infrastructure/overlay/dev/ingress.yaml @@ -11,7 +11,7 @@ metadata: # HTTPS configuration alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80},{"HTTPS":443}]' - alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:579871530627:certificate/220f82b0-2c72-4b01-b620-741cfbba00d9 + alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:579871530627:certificate/1187d24f-f377-4202-9cba-de460088f724 # Redirect HTTP to HTTPS alb.ingress.kubernetes.io/ssl-redirect: '443' diff --git a/infrastructure/overlay/prod/cluster-secret-store.yaml b/infrastructure/overlay/prod/cluster-secret-store.yaml index 72323be..774131f 100644 --- a/infrastructure/overlay/prod/cluster-secret-store.yaml +++ b/infrastructure/overlay/prod/cluster-secret-store.yaml @@ -1,4 +1,4 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ClusterSecretStore metadata: diff --git a/infrastructure/overlay/prod/external-secrets-sa.yaml b/infrastructure/overlay/prod/external-secrets-sa.yaml new file mode 100644 index 0000000..ce06b8f --- /dev/null +++ b/infrastructure/overlay/prod/external-secrets-sa.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ServiceAccount + +metadata: + name: external-secrets-sa + namespace: external-secrets + + annotations: + eks.amazonaws.com/role-arn: arn:aws:iam::579871530627:role/external-secrets-prod-role \ No newline at end of file diff --git a/infrastructure/overlay/prod/ingress.yaml b/infrastructure/overlay/prod/ingress.yaml index 817c8a8..51b5c51 100644 --- a/infrastructure/overlay/prod/ingress.yaml +++ b/infrastructure/overlay/prod/ingress.yaml @@ -2,18 +2,27 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: ecommerce-ingress + name: ingress-prod annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip + # HTTPS configuration + alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80},{"HTTPS":443}]' + alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:579871530627:certificate/51fbe279-36a0-4189-8177-5da78d2bd86b + + # Redirect HTTP to HTTPS + alb.ingress.kubernetes.io/ssl-redirect: '443' + + external-dns.alpha.kubernetes.io/hostname: api.prod.emmanuelogah.com + spec: ingressClassName: alb rules: - - host: api.emmanuelogah.com + - host: api.prod.emmanuelogah.com http: paths: @@ -24,7 +33,7 @@ spec: service: name: user-service port: - number: 8081 + number: 80 - path: /orders pathType: Prefix @@ -32,7 +41,7 @@ spec: service: name: order-service port: - number: 8083 + number: 80 - path: /payments pathType: Prefix @@ -40,7 +49,7 @@ spec: service: name: payment-service port: - number: 8084 + number: 80 - path: /products pathType: Prefix @@ -48,4 +57,4 @@ spec: service: name: product-service port: - number: 8082 \ No newline at end of file + number: 80 \ No newline at end of file diff --git a/infrastructure/overlay/prod/job.yaml b/infrastructure/overlay/prod/job.yaml new file mode 100644 index 0000000..6fa5e96 --- /dev/null +++ b/infrastructure/overlay/prod/job.yaml @@ -0,0 +1,102 @@ +apiVersion: batch/v1 +kind: Job + +metadata: + name: postgres-init + namespace: prod + annotations: + argocd.argoproj.io/sync-wave: "2" + +spec: + backoffLimit: 3 + + template: + spec: + restartPolicy: Never + + containers: + - name: postgres-init + + image: postgres:16 + + command: + - sh + - -c + - | + set -e + + until pg_isready -h "$DB_HOST" -U "$DB_USER"; do + echo "Waiting for PostgreSQL..." + sleep 10 + done + + apt-get update + apt-get install -y gettext + + envsubst < /sql/init.sql > /tmp/init.sql + + psql \ + -h "$DB_HOST" \ + -p "$DB_PORT" \ + -U "$DB_USER" \ + -d postgres \ + -f /tmp/init.sql + + env: + + - name: PGPASSWORD + valueFrom: + secretKeyRef: + name: postgres-master + key: password + + - name: DB_HOST + valueFrom: + secretKeyRef: + name: postgres-master + key: host + + - name: DB_PORT + valueFrom: + secretKeyRef: + name: postgres-master + key: port + + - name: DB_USER + valueFrom: + secretKeyRef: + name: postgres-master + key: username + + - name: ORDER_PASSWORD + valueFrom: + secretKeyRef: + name: order-db-secret + key: password + + - name: PAYMENT_PASSWORD + valueFrom: + secretKeyRef: + name: payment-db-secret + key: password + + - name: PRODUCT_PASSWORD + valueFrom: + secretKeyRef: + name: product-db-secret + key: password + + - name: USER_PASSWORD + valueFrom: + secretKeyRef: + name: user-db-secret + key: password + + volumeMounts: + - name: sql + mountPath: /sql + + volumes: + - name: sql + configMap: + name: postgres-init-sql \ No newline at end of file diff --git a/infrastructure/overlay/prod/kustomization.yaml b/infrastructure/overlay/prod/kustomization.yaml index 604cb12..b63b382 100644 --- a/infrastructure/overlay/prod/kustomization.yaml +++ b/infrastructure/overlay/prod/kustomization.yaml @@ -6,9 +6,10 @@ resources: - cluster-secret-store.yaml - ingress.yaml - - namespace-platform.yaml + - namespace-infra.yaml - order-db-secret.yaml - payment-db-secret.yaml - postgres-master-secret.yaml - - product-db-secret.yaml - - user-db-secret.yaml \ No newline at end of file + - external-secrets-sa.yaml + - redis-secret.yaml + - job.yaml \ No newline at end of file diff --git a/infrastructure/overlay/prod/namespace-platform.yaml b/infrastructure/overlay/prod/namespace-infra.yaml similarity index 71% rename from infrastructure/overlay/prod/namespace-platform.yaml rename to infrastructure/overlay/prod/namespace-infra.yaml index 06b99ea..f1ded58 100644 --- a/infrastructure/overlay/prod/namespace-platform.yaml +++ b/infrastructure/overlay/prod/namespace-infra.yaml @@ -1,4 +1,4 @@ apiVersion: v1 kind: Namespace metadata: - name: platform \ No newline at end of file + name: prod \ No newline at end of file diff --git a/infrastructure/overlay/prod/order-db-secret.yaml b/infrastructure/overlay/prod/order-db-secret.yaml index 0b728a2..5205a2e 100644 --- a/infrastructure/overlay/prod/order-db-secret.yaml +++ b/infrastructure/overlay/prod/order-db-secret.yaml @@ -1,9 +1,9 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: order-db-config - namespace: platform + name: order-db-secret + namespace: prod spec: secretStoreRef: diff --git a/infrastructure/overlay/prod/payment-db-secret.yaml b/infrastructure/overlay/prod/payment-db-secret.yaml index 4fa91e1..65d6d08 100644 --- a/infrastructure/overlay/prod/payment-db-secret.yaml +++ b/infrastructure/overlay/prod/payment-db-secret.yaml @@ -1,9 +1,9 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: payment-db-config - namespace: platform + name: payment-db-secret + namespace: prod spec: secretStoreRef: @@ -11,7 +11,7 @@ spec: kind: ClusterSecretStore target: - name: payment-db-config + name: payment-db-secret dataFrom: - extract: diff --git a/infrastructure/overlay/prod/postgres-master-secret.yaml b/infrastructure/overlay/prod/postgres-master-secret.yaml index 12988d4..c81f0ec 100644 --- a/infrastructure/overlay/prod/postgres-master-secret.yaml +++ b/infrastructure/overlay/prod/postgres-master-secret.yaml @@ -1,9 +1,11 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: postgres-master - namespace: platform + namespace: prod + annotations: + argocd.argoproj.io/sync-wave: "0" spec: refreshInterval: 1h diff --git a/infrastructure/overlay/prod/product-db-secret.yaml b/infrastructure/overlay/prod/product-db-secret.yaml index 7fcd65e..1a8fa13 100644 --- a/infrastructure/overlay/prod/product-db-secret.yaml +++ b/infrastructure/overlay/prod/product-db-secret.yaml @@ -1,9 +1,9 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: product-db-config - namespace: platform + name: product-db-secret + namespace: prod spec: secretStoreRef: @@ -11,7 +11,7 @@ spec: kind: ClusterSecretStore target: - name: product-db-config + name: product-db-secret dataFrom: - extract: diff --git a/infrastructure/overlay/prod/redis-secret.yaml b/infrastructure/overlay/prod/redis-secret.yaml new file mode 100644 index 0000000..073e8cb --- /dev/null +++ b/infrastructure/overlay/prod/redis-secret.yaml @@ -0,0 +1,25 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: redis-secret + namespace: prod + +spec: + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: redis-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /prod/redis/cache + property: host + + - secretKey: port + remoteRef: + key: /prod/redis/cache + property: port \ No newline at end of file diff --git a/infrastructure/overlay/prod/user-db-secret.yaml b/infrastructure/overlay/prod/user-db-secret.yaml index 06434a9..bb5cda1 100644 --- a/infrastructure/overlay/prod/user-db-secret.yaml +++ b/infrastructure/overlay/prod/user-db-secret.yaml @@ -1,9 +1,9 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: user-db-config - namespace: platform + name: user-db-secret + namespace: prod spec: secretStoreRef: @@ -11,7 +11,7 @@ spec: kind: ClusterSecretStore target: - name: user-db-config + name: user-db-secret dataFrom: - extract: diff --git a/infrastructure/overlay/staging/cluster-secret-store.yaml b/infrastructure/overlay/staging/cluster-secret-store.yaml index 72323be..774131f 100644 --- a/infrastructure/overlay/staging/cluster-secret-store.yaml +++ b/infrastructure/overlay/staging/cluster-secret-store.yaml @@ -1,4 +1,4 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ClusterSecretStore metadata: diff --git a/infrastructure/overlay/staging/external-secrets-sa.yaml b/infrastructure/overlay/staging/external-secrets-sa.yaml new file mode 100644 index 0000000..2de5cec --- /dev/null +++ b/infrastructure/overlay/staging/external-secrets-sa.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ServiceAccount + +metadata: + name: external-secrets-sa + namespace: external-secrets + + annotations: + eks.amazonaws.com/role-arn: arn:aws:iam::579871530627:role/external-secrets-staging-role \ No newline at end of file diff --git a/infrastructure/overlay/staging/ingress.yaml b/infrastructure/overlay/staging/ingress.yaml index 9b7fcc6..dac7689 100644 --- a/infrastructure/overlay/staging/ingress.yaml +++ b/infrastructure/overlay/staging/ingress.yaml @@ -2,13 +2,22 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: staging-ecommerce-ingress + name: ingress-staging annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip + # HTTPS configuration + alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80},{"HTTPS":443}]' + alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:579871530627:certificate/8cdf2ddd-8590-491f-a3a4-fdbdd276fdbb + + # Redirect HTTP to HTTPS + alb.ingress.kubernetes.io/ssl-redirect: '443' + + external-dns.alpha.kubernetes.io/hostname: api.staging.emmanuelogah.com + spec: ingressClassName: alb @@ -24,7 +33,7 @@ spec: service: name: user-service port: - number: 8081 + number: 80 - path: /orders pathType: Prefix @@ -32,7 +41,7 @@ spec: service: name: order-service port: - number: 8083 + number: 80 - path: /payments pathType: Prefix @@ -40,7 +49,7 @@ spec: service: name: payment-service port: - number: 8084 + number: 80 - path: /products pathType: Prefix @@ -48,4 +57,4 @@ spec: service: name: product-service port: - number: 8082 \ No newline at end of file + number: 80 \ No newline at end of file diff --git a/infrastructure/overlay/staging/job.yaml b/infrastructure/overlay/staging/job.yaml new file mode 100644 index 0000000..31bc1f5 --- /dev/null +++ b/infrastructure/overlay/staging/job.yaml @@ -0,0 +1,102 @@ +apiVersion: batch/v1 +kind: Job + +metadata: + name: postgres-init + namespace: staging + annotations: + argocd.argoproj.io/sync-wave: "2" + +spec: + backoffLimit: 3 + + template: + spec: + restartPolicy: Never + + containers: + - name: postgres-init + + image: postgres:16 + + command: + - sh + - -c + - | + set -e + + until pg_isready -h "$DB_HOST" -U "$DB_USER"; do + echo "Waiting for PostgreSQL..." + sleep 10 + done + + apt-get update + apt-get install -y gettext + + envsubst < /sql/init.sql > /tmp/init.sql + + psql \ + -h "$DB_HOST" \ + -p "$DB_PORT" \ + -U "$DB_USER" \ + -d postgres \ + -f /tmp/init.sql + + env: + + - name: PGPASSWORD + valueFrom: + secretKeyRef: + name: postgres-master + key: password + + - name: DB_HOST + valueFrom: + secretKeyRef: + name: postgres-master + key: host + + - name: DB_PORT + valueFrom: + secretKeyRef: + name: postgres-master + key: port + + - name: DB_USER + valueFrom: + secretKeyRef: + name: postgres-master + key: username + + - name: ORDER_PASSWORD + valueFrom: + secretKeyRef: + name: order-db-secret + key: password + + - name: PAYMENT_PASSWORD + valueFrom: + secretKeyRef: + name: payment-db-secret + key: password + + - name: PRODUCT_PASSWORD + valueFrom: + secretKeyRef: + name: product-db-secret + key: password + + - name: USER_PASSWORD + valueFrom: + secretKeyRef: + name: user-db-secret + key: password + + volumeMounts: + - name: sql + mountPath: /sql + + volumes: + - name: sql + configMap: + name: postgres-init-sql \ No newline at end of file diff --git a/infrastructure/overlay/staging/kustomization.yaml b/infrastructure/overlay/staging/kustomization.yaml index 604cb12..b63b382 100644 --- a/infrastructure/overlay/staging/kustomization.yaml +++ b/infrastructure/overlay/staging/kustomization.yaml @@ -6,9 +6,10 @@ resources: - cluster-secret-store.yaml - ingress.yaml - - namespace-platform.yaml + - namespace-infra.yaml - order-db-secret.yaml - payment-db-secret.yaml - postgres-master-secret.yaml - - product-db-secret.yaml - - user-db-secret.yaml \ No newline at end of file + - external-secrets-sa.yaml + - redis-secret.yaml + - job.yaml \ No newline at end of file diff --git a/infrastructure/overlay/staging/namespace-platform.yaml b/infrastructure/overlay/staging/namespace-infra.yaml similarity index 71% rename from infrastructure/overlay/staging/namespace-platform.yaml rename to infrastructure/overlay/staging/namespace-infra.yaml index 06b99ea..c6212de 100644 --- a/infrastructure/overlay/staging/namespace-platform.yaml +++ b/infrastructure/overlay/staging/namespace-infra.yaml @@ -1,4 +1,4 @@ apiVersion: v1 kind: Namespace metadata: - name: platform \ No newline at end of file + name: staging \ No newline at end of file diff --git a/infrastructure/overlay/staging/order-db-secret.yaml b/infrastructure/overlay/staging/order-db-secret.yaml index 164d059..5919119 100644 --- a/infrastructure/overlay/staging/order-db-secret.yaml +++ b/infrastructure/overlay/staging/order-db-secret.yaml @@ -1,9 +1,9 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: order-db-config - namespace: platform + name: order-db-secret + namespace: staging spec: secretStoreRef: diff --git a/infrastructure/overlay/staging/payment-db-secret.yaml b/infrastructure/overlay/staging/payment-db-secret.yaml index 0b545d9..73d1c62 100644 --- a/infrastructure/overlay/staging/payment-db-secret.yaml +++ b/infrastructure/overlay/staging/payment-db-secret.yaml @@ -1,9 +1,9 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: payment-db-config - namespace: platform + name: payment-db-secret + namespace: staging spec: secretStoreRef: @@ -11,7 +11,7 @@ spec: kind: ClusterSecretStore target: - name: payment-db-config + name: payment-db-secret dataFrom: - extract: diff --git a/infrastructure/overlay/staging/postgres-master-secret.yaml b/infrastructure/overlay/staging/postgres-master-secret.yaml index 3513152..933d7fc 100644 --- a/infrastructure/overlay/staging/postgres-master-secret.yaml +++ b/infrastructure/overlay/staging/postgres-master-secret.yaml @@ -1,9 +1,11 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: postgres-master - namespace: platform + namespace: staging + annotations: + argocd.argoproj.io/sync-wave: "0" spec: refreshInterval: 1h diff --git a/infrastructure/overlay/staging/product-db-secret.yaml b/infrastructure/overlay/staging/product-db-secret.yaml index e33e675..72b04c3 100644 --- a/infrastructure/overlay/staging/product-db-secret.yaml +++ b/infrastructure/overlay/staging/product-db-secret.yaml @@ -1,9 +1,9 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: product-db-config - namespace: platform + name: product-db-secret + namespace: staging spec: secretStoreRef: @@ -11,7 +11,7 @@ spec: kind: ClusterSecretStore target: - name: product-db-config + name: product-db-secret dataFrom: - extract: diff --git a/infrastructure/overlay/staging/redis-secret.yaml b/infrastructure/overlay/staging/redis-secret.yaml new file mode 100644 index 0000000..dae4e74 --- /dev/null +++ b/infrastructure/overlay/staging/redis-secret.yaml @@ -0,0 +1,25 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: redis-secret + namespace: staging + +spec: + secretStoreRef: + name: aws-secretsmanager + kind: ClusterSecretStore + + target: + name: redis-secret + creationPolicy: Owner + + data: + - secretKey: host + remoteRef: + key: /staging/redis/cache + property: host + + - secretKey: port + remoteRef: + key: /staging/redis/cache + property: port \ No newline at end of file diff --git a/infrastructure/overlay/staging/user-db-secret.yaml b/infrastructure/overlay/staging/user-db-secret.yaml index 135f620..bc14a9c 100644 --- a/infrastructure/overlay/staging/user-db-secret.yaml +++ b/infrastructure/overlay/staging/user-db-secret.yaml @@ -1,9 +1,9 @@ -apiVersion: external-secrets.io/v1beta1 +apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: user-db-config - namespace: platform + name: user-db-secret + namespace: staging spec: secretStoreRef: @@ -11,7 +11,7 @@ spec: kind: ClusterSecretStore target: - name: user-db-config + name: user-db-secret dataFrom: - extract: diff --git a/platform/ingress/overlays/dev/aws-load-balancer-controller-patch.yaml b/platform/ingress/overlays/dev/aws-load-balancer-controller-patch.yaml index e863a32..00362a6 100644 --- a/platform/ingress/overlays/dev/aws-load-balancer-controller-patch.yaml +++ b/platform/ingress/overlays/dev/aws-load-balancer-controller-patch.yaml @@ -14,7 +14,7 @@ spec: values: | clusterName: eks-dev-cluster region: us-east-1 - vpcId: vpc-06601a547622eb138 + vpcId: vpc-059e75cfd8dfdb0d8 serviceAccount: create: true diff --git a/platform/ingress/overlays/prod/aws-load-balancer-controller-patch.yaml b/platform/ingress/overlays/prod/aws-load-balancer-controller-patch.yaml new file mode 100644 index 0000000..448837a --- /dev/null +++ b/platform/ingress/overlays/prod/aws-load-balancer-controller-patch.yaml @@ -0,0 +1,29 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: aws-load-balancer-controller + namespace: argocd + +spec: + destination: + namespace: prod + + source: + helm: + values: | + clusterName: eks-prod-cluster + region: us-east-1 + vpcId: vpc-0c380b62de2a2f517 + + serviceAccount: + create: true + name: aws-load-balancer-controller + + replicaCount: 2 + + metrics: + serviceMonitor: + enabled: true + additionalLabels: + prometheus: kube-prometheus \ No newline at end of file diff --git a/platform/ingress/overlays/prod/external-dns-patch.yaml b/platform/ingress/overlays/prod/external-dns-patch.yaml new file mode 100644 index 0000000..a15ea00 --- /dev/null +++ b/platform/ingress/overlays/prod/external-dns-patch.yaml @@ -0,0 +1,33 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: external-dns + namespace: argocd + +spec: + destination: + namespace: prod + + source: + helm: + values: | + provider: aws + + policy: sync + + registry: txt + + txtOwnerId: eks-prod-cluster + + domainFilters: + - api.prod.emmanuelogah.com + + serviceAccount: + create: true + name: external-dns + + serviceMonitor: + enabled: true + additionalLabels: + prometheus: kube-prometheus \ No newline at end of file diff --git a/platform/ingress/overlays/prod/kustomization.yaml b/platform/ingress/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..a89df91 --- /dev/null +++ b/platform/ingress/overlays/prod/kustomization.yaml @@ -0,0 +1,12 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: prod + +resources: + - ../../base + - letsencrypt.yaml + +patches: + - path: external-dns-patch.yaml + - path: aws-load-balancer-controller-patch.yaml \ No newline at end of file diff --git a/platform/ingress/overlays/prod/letsencrypt.yaml b/platform/ingress/overlays/prod/letsencrypt.yaml new file mode 100644 index 0000000..11dc037 --- /dev/null +++ b/platform/ingress/overlays/prod/letsencrypt.yaml @@ -0,0 +1,21 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer + +metadata: + name: letsencrypt + annotations: + argocd.argoproj.io/sync-wave: "0" + +spec: + acme: + email: admin@prod.example.com + + server: https://acme-v02.api.letsencrypt.org/directory + + privateKeySecretRef: + name: letsencrypt-account-key + + solvers: + - http01: + ingress: + ingressClassName: alb \ No newline at end of file diff --git a/platform/ingress/overlays/staging/aws-load-balancer-controller-patch.yaml b/platform/ingress/overlays/staging/aws-load-balancer-controller-patch.yaml new file mode 100644 index 0000000..22c4882 --- /dev/null +++ b/platform/ingress/overlays/staging/aws-load-balancer-controller-patch.yaml @@ -0,0 +1,29 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: aws-load-balancer-controller + namespace: argocd + +spec: + destination: + namespace: staging + + source: + helm: + values: | + clusterName: eks-staging-cluster + region: us-east-1 + vpcId: vpc-0deb743730213eae8 + + serviceAccount: + create: true + name: aws-load-balancer-controller + + replicaCount: 2 + + metrics: + serviceMonitor: + enabled: true + additionalLabels: + prometheus: kube-prometheus \ No newline at end of file diff --git a/platform/ingress/overlays/staging/external-dns-patch.yaml b/platform/ingress/overlays/staging/external-dns-patch.yaml new file mode 100644 index 0000000..ef1a4f1 --- /dev/null +++ b/platform/ingress/overlays/staging/external-dns-patch.yaml @@ -0,0 +1,33 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: external-dns + namespace: argocd + +spec: + destination: + namespace: staging + + source: + helm: + values: | + provider: aws + + policy: sync + + registry: txt + + txtOwnerId: eks-staging-cluster + + domainFilters: + - api.staging.emmanuelogah.com + + serviceAccount: + create: true + name: external-dns + + serviceMonitor: + enabled: true + additionalLabels: + prometheus: kube-prometheus \ No newline at end of file diff --git a/platform/ingress/overlays/staging/kustomization.yaml b/platform/ingress/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..3e95c93 --- /dev/null +++ b/platform/ingress/overlays/staging/kustomization.yaml @@ -0,0 +1,12 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: staging + +resources: + - ../../base + - letsencrypt.yaml + +patches: + - path: external-dns-patch.yaml + - path: aws-load-balancer-controller-patch.yaml \ No newline at end of file diff --git a/platform/ingress/overlays/staging/letsencrypt.yaml b/platform/ingress/overlays/staging/letsencrypt.yaml new file mode 100644 index 0000000..5197e93 --- /dev/null +++ b/platform/ingress/overlays/staging/letsencrypt.yaml @@ -0,0 +1,21 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer + +metadata: + name: letsencrypt + annotations: + argocd.argoproj.io/sync-wave: "0" + +spec: + acme: + email: admin@staging.example.com + + server: https://acme-v02.api.letsencrypt.org/directory + + privateKeySecretRef: + name: letsencrypt-account-key + + solvers: + - http01: + ingress: + ingressClassName: alb \ No newline at end of file diff --git a/platform/logging/overlays/prod/kustomization.yaml b/platform/logging/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..f905966 --- /dev/null +++ b/platform/logging/overlays/prod/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: prod + +resources: + - ../../base \ No newline at end of file diff --git a/platform/logging/overlays/staging/kustomization.yaml b/platform/logging/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..1578827 --- /dev/null +++ b/platform/logging/overlays/staging/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: staging + +resources: + - ../../base \ No newline at end of file diff --git a/platform/monitoring/base/kube-prometheus-stack/alertmanager/external-secret.yaml b/platform/monitoring/base/kube-prometheus-stack/alertmanager/external-secret.yaml index 05d6627..1293575 100644 --- a/platform/monitoring/base/kube-prometheus-stack/alertmanager/external-secret.yaml +++ b/platform/monitoring/base/kube-prometheus-stack/alertmanager/external-secret.yaml @@ -18,5 +18,5 @@ spec: data: - secretKey: slack-webhook remoteRef: - key: alertmanager/notification + key: PLACEHOLDER property: slack-webhook \ No newline at end of file diff --git a/platform/monitoring/base/kube-prometheus-stack/external-secret.yaml b/platform/monitoring/base/kube-prometheus-stack/external-secret.yaml index fe22588..2bce348 100644 --- a/platform/monitoring/base/kube-prometheus-stack/external-secret.yaml +++ b/platform/monitoring/base/kube-prometheus-stack/external-secret.yaml @@ -16,10 +16,10 @@ spec: data: - secretKey: admin-user remoteRef: - key: grafana/admin + key: PLACEHOLDER property: username - secretKey: admin-password remoteRef: - key: grafana/admin + key: PLACEHOLDER property: password \ No newline at end of file diff --git a/platform/monitoring/overlays/dev/external-secret-patch.yaml b/platform/monitoring/overlays/dev/external-secret-patch.yaml new file mode 100644 index 0000000..5b6bb9b --- /dev/null +++ b/platform/monitoring/overlays/dev/external-secret-patch.yaml @@ -0,0 +1,10 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: alertmanager-notification-secret +spec: + data: + - secretKey: slack-webhook + remoteRef: + key: dev-alertmanager/notifications + property: slack-webhook \ No newline at end of file diff --git a/platform/monitoring/overlays/dev/grafana-external-secret-patch.yml b/platform/monitoring/overlays/dev/grafana-external-secret-patch.yml new file mode 100644 index 0000000..7d3915b --- /dev/null +++ b/platform/monitoring/overlays/dev/grafana-external-secret-patch.yml @@ -0,0 +1,15 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: grafana-admin +spec: + data: + - secretKey: admin-user + remoteRef: + key: dev-grafana/admin + property: username + + - secretKey: admin-password + remoteRef: + key: dev-grafana/admin + property: password \ No newline at end of file diff --git a/platform/monitoring/overlays/dev/kustomization.yaml b/platform/monitoring/overlays/dev/kustomization.yaml index cc71c7a..aa752f2 100644 --- a/platform/monitoring/overlays/dev/kustomization.yaml +++ b/platform/monitoring/overlays/dev/kustomization.yaml @@ -13,4 +13,6 @@ resources: patches: - path: kube-prometheus-stack-patch.yaml - - path: postgres-exporter-patch.yaml \ No newline at end of file + - path: postgres-exporter-patch.yaml + - path: external-secret-patch.yaml + - path: grafana-external-secret-patch.yml \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/external-secret-patch.yaml b/platform/monitoring/overlays/prod/external-secret-patch.yaml new file mode 100644 index 0000000..e34c0f6 --- /dev/null +++ b/platform/monitoring/overlays/prod/external-secret-patch.yaml @@ -0,0 +1,10 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: alertmanager-notification-secret +spec: + data: + - secretKey: slack-webhook + remoteRef: + key: prod-alertmanager/notifications + property: slack-webhook \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/grafana-external-secret-patch.yml b/platform/monitoring/overlays/prod/grafana-external-secret-patch.yml new file mode 100644 index 0000000..21467e7 --- /dev/null +++ b/platform/monitoring/overlays/prod/grafana-external-secret-patch.yml @@ -0,0 +1,15 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: grafana-admin +spec: + data: + - secretKey: admin-user + remoteRef: + key: prod-grafana/admin + property: username + + - secretKey: admin-password + remoteRef: + key: prod-grafana/admin + property: password \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/kube-prometheus-stack-patch.yaml b/platform/monitoring/overlays/prod/kube-prometheus-stack-patch.yaml new file mode 100644 index 0000000..74feb98 --- /dev/null +++ b/platform/monitoring/overlays/prod/kube-prometheus-stack-patch.yaml @@ -0,0 +1,13 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: kube-prometheus-stack + namespace: argocd + +spec: + source: + helm: + valueFiles: + - $values/platform/monitoring/base/kube-prometheus-stack/values-common.yaml + - $values/platform/monitoring/overlays/prod/values-prod.yaml \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/kustomization.yaml b/platform/monitoring/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..8b7b035 --- /dev/null +++ b/platform/monitoring/overlays/prod/kustomization.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: prod + +resources: + - ../../base + - order/application.yaml + - payment/application.yaml + - product/application.yaml + - user/application.yaml + + +patches: + - path: kube-prometheus-stack-patch.yaml + - path: postgres-exporter-patch.yaml + - path: external-secret-patch.yaml + - path: grafana-external-secret-patch.yaml \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/order/application.yaml b/platform/monitoring/overlays/prod/order/application.yaml new file mode 100644 index 0000000..ccbe417 --- /dev/null +++ b/platform/monitoring/overlays/prod/order/application.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: order-postgres-exporter + namespace: argocd + +spec: + project: default + + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-postgres-exporter + targetRevision: 6.8.0 + + helm: + valuesObject: + serviceMonitor: + enabled: true + + config: + datasource: + host: order-postgres.prod.svc.cluster.local + port: "5432" + database: orderdb + + destination: + server: https://kubernetes.default.svc + namespace: prod + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/payment/application.yaml b/platform/monitoring/overlays/prod/payment/application.yaml new file mode 100644 index 0000000..f577f78 --- /dev/null +++ b/platform/monitoring/overlays/prod/payment/application.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: payment-postgres-exporter + namespace: argocd + +spec: + project: default + + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-postgres-exporter + targetRevision: 6.8.0 + + helm: + valuesObject: + serviceMonitor: + enabled: true + + config: + datasource: + host: payment-postgres.prod.svc.cluster.local + port: "5432" + database: paymentdb + + destination: + server: https://kubernetes.default.svc + namespace: prod + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/postgres-exporter-patch.yaml b/platform/monitoring/overlays/prod/postgres-exporter-patch.yaml new file mode 100644 index 0000000..3304328 --- /dev/null +++ b/platform/monitoring/overlays/prod/postgres-exporter-patch.yaml @@ -0,0 +1,13 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: postgres-exporter + namespace: argocd + +spec: + source: + helm: + valueFiles: + - $values/platform/monitoring/base/postgres-exporter/values-common.yaml + - $values/platform/monitoring/overlays/prod/postgres-values.yaml \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/product/application.yaml b/platform/monitoring/overlays/prod/product/application.yaml new file mode 100644 index 0000000..e40ad29 --- /dev/null +++ b/platform/monitoring/overlays/prod/product/application.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: product-postgres-exporter + namespace: argocd + +spec: + project: default + + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-postgres-exporter + targetRevision: 6.8.0 + + helm: + valuesObject: + serviceMonitor: + enabled: true + + config: + datasource: + host: product-postgres.prod.svc.cluster.local + port: "5432" + database: productdb + + destination: + server: https://kubernetes.default.svc + namespace: prod + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/user/application.yaml b/platform/monitoring/overlays/prod/user/application.yaml new file mode 100644 index 0000000..b386609 --- /dev/null +++ b/platform/monitoring/overlays/prod/user/application.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: user-postgres-exporter + namespace: argocd + +spec: + project: default + + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-postgres-exporter + targetRevision: 6.8.0 + + helm: + valuesObject: + serviceMonitor: + enabled: true + + config: + datasource: + host: user-postgres.prod.svc.cluster.local + port: "5432" + database: userdb + + destination: + server: https://kubernetes.default.svc + namespace: prod + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/platform/monitoring/overlays/prod/values-prod.yaml b/platform/monitoring/overlays/prod/values-prod.yaml new file mode 100644 index 0000000..c891953 --- /dev/null +++ b/platform/monitoring/overlays/prod/values-prod.yaml @@ -0,0 +1,20 @@ +grafana: + persistence: + storageClassName: gp3 + size: 20Gi + +prometheus: + prometheusSpec: + retention: 30d + + storageSpec: + volumeClaimTemplate: + spec: + storageClassName: gp3 + +alertmanager: + alertmanagerSpec: + storage: + volumeClaimTemplate: + spec: + storageClassName: gp3 \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/external-secret-patch.yaml b/platform/monitoring/overlays/staging/external-secret-patch.yaml new file mode 100644 index 0000000..e2537a7 --- /dev/null +++ b/platform/monitoring/overlays/staging/external-secret-patch.yaml @@ -0,0 +1,10 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: alertmanager-notification-secret +spec: + data: + - secretKey: slack-webhook + remoteRef: + key: staging-alertmanager/notifications + property: slack-webhook \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/grafana-external-secret-patch.yml b/platform/monitoring/overlays/staging/grafana-external-secret-patch.yml new file mode 100644 index 0000000..dc86274 --- /dev/null +++ b/platform/monitoring/overlays/staging/grafana-external-secret-patch.yml @@ -0,0 +1,15 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: grafana-admin +spec: + data: + - secretKey: admin-user + remoteRef: + key: staging-grafana/admin + property: username + + - secretKey: admin-password + remoteRef: + key: staging-grafana/admin + property: password \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/kube-prometheus-stack-patch.yaml b/platform/monitoring/overlays/staging/kube-prometheus-stack-patch.yaml new file mode 100644 index 0000000..76b7391 --- /dev/null +++ b/platform/monitoring/overlays/staging/kube-prometheus-stack-patch.yaml @@ -0,0 +1,13 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: kube-prometheus-stack + namespace: argocd + +spec: + source: + helm: + valueFiles: + - $values/platform/monitoring/base/kube-prometheus-stack/values-common.yaml + - $values/platform/monitoring/overlays/staging/values-staging.yaml \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/kustomization.yaml b/platform/monitoring/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..51b8dc3 --- /dev/null +++ b/platform/monitoring/overlays/staging/kustomization.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: staging + +resources: + - ../../base + - order/application.yaml + - payment/application.yaml + - product/application.yaml + - user/application.yaml + + +patches: + - path: kube-prometheus-stack-patch.yaml + - path: postgres-exporter-patch.yaml + - path: external-secret-patch.yaml + - path: grafana-external-secret-patch.yaml \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/order/application.yaml b/platform/monitoring/overlays/staging/order/application.yaml new file mode 100644 index 0000000..2525ad1 --- /dev/null +++ b/platform/monitoring/overlays/staging/order/application.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: order-postgres-exporter + namespace: argocd + +spec: + project: default + + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-postgres-exporter + targetRevision: 6.8.0 + + helm: + valuesObject: + serviceMonitor: + enabled: true + + config: + datasource: + host: order-postgres.staging.svc.cluster.local + port: "5432" + database: orderdb + + destination: + server: https://kubernetes.default.svc + namespace: staging + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/payment/application.yaml b/platform/monitoring/overlays/staging/payment/application.yaml new file mode 100644 index 0000000..cbf579f --- /dev/null +++ b/platform/monitoring/overlays/staging/payment/application.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: payment-postgres-exporter + namespace: argocd + +spec: + project: default + + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-postgres-exporter + targetRevision: 6.8.0 + + helm: + valuesObject: + serviceMonitor: + enabled: true + + config: + datasource: + host: payment-postgres.staging.svc.cluster.local + port: "5432" + database: paymentdb + + destination: + server: https://kubernetes.default.svc + namespace: staging + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/postgres-exporter-patch.yaml b/platform/monitoring/overlays/staging/postgres-exporter-patch.yaml new file mode 100644 index 0000000..c0b6593 --- /dev/null +++ b/platform/monitoring/overlays/staging/postgres-exporter-patch.yaml @@ -0,0 +1,13 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: postgres-exporter + namespace: argocd + +spec: + source: + helm: + valueFiles: + - $values/platform/monitoring/base/postgres-exporter/values-common.yaml + - $values/platform/monitoring/overlays/staging/postgres-values.yaml \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/product/application.yaml b/platform/monitoring/overlays/staging/product/application.yaml new file mode 100644 index 0000000..8f8c6d4 --- /dev/null +++ b/platform/monitoring/overlays/staging/product/application.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: product-postgres-exporter + namespace: argocd + +spec: + project: default + + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-postgres-exporter + targetRevision: 6.8.0 + + helm: + valuesObject: + serviceMonitor: + enabled: true + + config: + datasource: + host: product-postgres.staging.svc.cluster.local + port: "5432" + database: productdb + + destination: + server: https://kubernetes.default.svc + namespace: staging + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/user/application.yaml b/platform/monitoring/overlays/staging/user/application.yaml new file mode 100644 index 0000000..15bee29 --- /dev/null +++ b/platform/monitoring/overlays/staging/user/application.yaml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: user-postgres-exporter + namespace: argocd + +spec: + project: default + + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-postgres-exporter + targetRevision: 6.8.0 + + helm: + valuesObject: + serviceMonitor: + enabled: true + + config: + datasource: + host: user-postgres.staging.svc.cluster.local + port: "5432" + database: userdb + + destination: + server: https://kubernetes.default.svc + namespace: staging + + syncPolicy: + automated: + prune: true + selfHeal: true \ No newline at end of file diff --git a/platform/monitoring/overlays/staging/values-staging.yaml b/platform/monitoring/overlays/staging/values-staging.yaml new file mode 100644 index 0000000..c891953 --- /dev/null +++ b/platform/monitoring/overlays/staging/values-staging.yaml @@ -0,0 +1,20 @@ +grafana: + persistence: + storageClassName: gp3 + size: 20Gi + +prometheus: + prometheusSpec: + retention: 30d + + storageSpec: + volumeClaimTemplate: + spec: + storageClassName: gp3 + +alertmanager: + alertmanagerSpec: + storage: + volumeClaimTemplate: + spec: + storageClassName: gp3 \ No newline at end of file diff --git a/platform/networking/overlays/prod/application-patch.yaml b/platform/networking/overlays/prod/application-patch.yaml new file mode 100644 index 0000000..5ba522f --- /dev/null +++ b/platform/networking/overlays/prod/application-patch.yaml @@ -0,0 +1,6 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: metrics-server + namespace: argocd \ No newline at end of file diff --git a/platform/networking/overlays/prod/kustomization.yaml b/platform/networking/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..d64f20b --- /dev/null +++ b/platform/networking/overlays/prod/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../../base + +patches: + - path: application-patch.yaml \ No newline at end of file diff --git a/platform/networking/overlays/staging/application-patch.yaml b/platform/networking/overlays/staging/application-patch.yaml new file mode 100644 index 0000000..5ba522f --- /dev/null +++ b/platform/networking/overlays/staging/application-patch.yaml @@ -0,0 +1,6 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: metrics-server + namespace: argocd \ No newline at end of file diff --git a/platform/networking/overlays/staging/kustomization.yaml b/platform/networking/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..d64f20b --- /dev/null +++ b/platform/networking/overlays/staging/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../../base + +patches: + - path: application-patch.yaml \ No newline at end of file diff --git a/platform/overlays/prod/kustomization.yaml b/platform/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..3482847 --- /dev/null +++ b/platform/overlays/prod/kustomization.yaml @@ -0,0 +1,11 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../../ingress/overlays/prod + - ../../logging/overlays/prod + - ../../monitoring/overlays/prod + - ../../networking/overlays/prod + - ../../security/overlays/prod + - ../../tracing/overlays/prod + - ../../storage/overlays/prod \ No newline at end of file diff --git a/platform/overlays/prod/platform-namespace.yaml b/platform/overlays/prod/platform-namespace.yaml new file mode 100644 index 0000000..bdf6dba --- /dev/null +++ b/platform/overlays/prod/platform-namespace.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: Namespace + +metadata: + name: prod \ No newline at end of file diff --git a/platform/overlays/staging/kustomization.yaml b/platform/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..1139ebb --- /dev/null +++ b/platform/overlays/staging/kustomization.yaml @@ -0,0 +1,11 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../../ingress/overlays/staging + - ../../logging/overlays/staging + - ../../monitoring/overlays/staging + - ../../networking/overlays/staging + - ../../security/overlays/staging + - ../../tracing/overlays/staging + - ../../storage/overlays/staging \ No newline at end of file diff --git a/platform/overlays/staging/platform-namespace.yaml b/platform/overlays/staging/platform-namespace.yaml new file mode 100644 index 0000000..9ca1a99 --- /dev/null +++ b/platform/overlays/staging/platform-namespace.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: Namespace + +metadata: + name: staging \ No newline at end of file diff --git a/platform/security/overlays/prod/application-patch.yaml b/platform/security/overlays/prod/application-patch.yaml new file mode 100644 index 0000000..25880c1 --- /dev/null +++ b/platform/security/overlays/prod/application-patch.yaml @@ -0,0 +1,6 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: kyverno + namespace: argocd \ No newline at end of file diff --git a/platform/security/overlays/prod/kustomization.yaml b/platform/security/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..306e06d --- /dev/null +++ b/platform/security/overlays/prod/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + + +resources: + - ../../base/ + +patches: + - path: application-patch.yaml \ No newline at end of file diff --git a/platform/security/overlays/staging/application-patch.yaml b/platform/security/overlays/staging/application-patch.yaml new file mode 100644 index 0000000..25880c1 --- /dev/null +++ b/platform/security/overlays/staging/application-patch.yaml @@ -0,0 +1,6 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: kyverno + namespace: argocd \ No newline at end of file diff --git a/platform/security/overlays/staging/kustomization.yaml b/platform/security/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..306e06d --- /dev/null +++ b/platform/security/overlays/staging/kustomization.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + + +resources: + - ../../base/ + +patches: + - path: application-patch.yaml \ No newline at end of file diff --git a/platform/storage/overlays/prod/backup-schedule-patch.yaml b/platform/storage/overlays/prod/backup-schedule-patch.yaml new file mode 100644 index 0000000..9d59afe --- /dev/null +++ b/platform/storage/overlays/prod/backup-schedule-patch.yaml @@ -0,0 +1,11 @@ +apiVersion: velero.io/v1 +kind: Schedule + +metadata: + name: daily-backup + namespace: argocd + +spec: + template: + includedNamespaces: + - prod \ No newline at end of file diff --git a/platform/storage/overlays/prod/ebs-csi-driver-application-patch.yaml b/platform/storage/overlays/prod/ebs-csi-driver-application-patch.yaml new file mode 100644 index 0000000..2b4a216 --- /dev/null +++ b/platform/storage/overlays/prod/ebs-csi-driver-application-patch.yaml @@ -0,0 +1,6 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: ebs-csi-driver + namespace: argocd \ No newline at end of file diff --git a/platform/storage/overlays/prod/kustomization.yaml b/platform/storage/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..1e705e3 --- /dev/null +++ b/platform/storage/overlays/prod/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../../base + + +patches: + - path: ebs-csi-driver-application-patch.yaml + - path: backup-schedule-patch.yaml \ No newline at end of file diff --git a/platform/storage/overlays/staging/backup-schedule-patch.yaml b/platform/storage/overlays/staging/backup-schedule-patch.yaml new file mode 100644 index 0000000..fd682a9 --- /dev/null +++ b/platform/storage/overlays/staging/backup-schedule-patch.yaml @@ -0,0 +1,11 @@ +apiVersion: velero.io/v1 +kind: Schedule + +metadata: + name: daily-backup + namespace: argocd + +spec: + template: + includedNamespaces: + - staging \ No newline at end of file diff --git a/platform/storage/overlays/staging/ebs-csi-driver-application-patch.yaml b/platform/storage/overlays/staging/ebs-csi-driver-application-patch.yaml new file mode 100644 index 0000000..2b4a216 --- /dev/null +++ b/platform/storage/overlays/staging/ebs-csi-driver-application-patch.yaml @@ -0,0 +1,6 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application + +metadata: + name: ebs-csi-driver + namespace: argocd \ No newline at end of file diff --git a/platform/storage/overlays/staging/kustomization.yaml b/platform/storage/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..1e705e3 --- /dev/null +++ b/platform/storage/overlays/staging/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - ../../base + + +patches: + - path: ebs-csi-driver-application-patch.yaml + - path: backup-schedule-patch.yaml \ No newline at end of file diff --git a/platform/tracing/overlays/prod/kustomization.yaml b/platform/tracing/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..f905966 --- /dev/null +++ b/platform/tracing/overlays/prod/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: prod + +resources: + - ../../base \ No newline at end of file diff --git a/platform/tracing/overlays/staging/kustomization.yaml b/platform/tracing/overlays/staging/kustomization.yaml new file mode 100644 index 0000000..1578827 --- /dev/null +++ b/platform/tracing/overlays/staging/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: staging + +resources: + - ../../base \ No newline at end of file