diff --git a/.github/workflows/helm-release-infisical-core.yml b/.github/workflows/helm-release-infisical-core.yml index 0588d5d0d0..ebce7cbe0e 100644 --- a/.github/workflows/helm-release-infisical-core.yml +++ b/.github/workflows/helm-release-infisical-core.yml @@ -3,7 +3,62 @@ name: Release Infisical Core Helm chart on: [workflow_dispatch] jobs: + test-helm: + name: Test Helm Chart + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v4.2.0 + with: + version: v3.17.0 + + - uses: actions/setup-python@v5.3.0 + with: + python-version: "3.x" + check-latest: true + + - name: Add Helm repositories + run: | + helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx + helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo update + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.7.0 + + - name: Run chart-testing (lint) + run: ct lint --config ct.yaml --charts helm-charts/infisical-standalone-postgres + + - name: Create kind cluster + uses: helm/kind-action@v1.12.0 + + - name: Create namespace + run: kubectl create namespace infisical-standalone-postgres + + - name: Create Infisical secrets + run: | + kubectl create secret generic infisical-secrets \ + --namespace infisical-standalone-postgres \ + --from-literal=AUTH_SECRET=6c1fe4e407b8911c104518103505b218 \ + --from-literal=ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218 \ + --from-literal=SITE_URL=http://localhost:8080 + + - name: Run chart-testing (install) + run: | + ct install \ + --config ct.yaml \ + --charts helm-charts/infisical-standalone-postgres \ + --helm-extra-args="--timeout=300s" \ + --helm-extra-set-args="--set ingress.nginx.enabled=false --set infisical.autoDatabaseSchemaMigration=false --set infisical.replicaCount=1 --set infisical.image.tag=v0.132.2-postgres" \ + --namespace infisical-standalone-postgres + release: + needs: test-helm runs-on: ubuntu-latest steps: - name: Checkout @@ -19,4 +74,4 @@ jobs: - name: Build and push helm package to Cloudsmith run: cd helm-charts && sh upload-infisical-core-helm-cloudsmith.sh env: - CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} \ No newline at end of file + CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} diff --git a/.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml b/.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml new file mode 100644 index 0000000000..fcf5197208 --- /dev/null +++ b/.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml @@ -0,0 +1,61 @@ +name: Run Helm Chart Tests for Infisical Standalone Postgres +on: + pull_request: + paths: + - "helm-charts/infisical-standalone-postgres/**" + - ".github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml" + +jobs: + test-helm: + name: Test Helm Chart + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v4.2.0 + with: + version: v3.17.0 + + - uses: actions/setup-python@v5.3.0 + with: + python-version: "3.x" + check-latest: true + + - name: Add Helm repositories + run: | + helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx + helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo update + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.7.0 + + - name: Run chart-testing (lint) + run: ct lint --config ct.yaml --charts helm-charts/infisical-standalone-postgres + + - name: Create kind cluster + uses: helm/kind-action@v1.12.0 + + - name: Create namespace + run: kubectl create namespace infisical-standalone-postgres + + - name: Create Infisical secrets + run: | + kubectl create secret generic infisical-secrets \ + --namespace infisical-standalone-postgres \ + --from-literal=AUTH_SECRET=6c1fe4e407b8911c104518103505b218 \ + --from-literal=ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218 \ + --from-literal=SITE_URL=http://localhost:8080 + + - name: Run chart-testing (install) + run: | + ct install \ + --config ct.yaml \ + --charts helm-charts/infisical-standalone-postgres \ + --helm-extra-args="--timeout=300s" \ + --helm-extra-set-args="--set ingress.nginx.enabled=false --set infisical.autoDatabaseSchemaMigration=false --set infisical.replicaCount=1 --set infisical.image.tag=v0.132.2-postgres" \ + --namespace infisical-standalone-postgres diff --git a/.infisicalignore b/.infisicalignore index 02cdd4f0ee..546c671183 100644 --- a/.infisicalignore +++ b/.infisicalignore @@ -40,3 +40,7 @@ cli/detect/config/gitleaks.toml:gcp-api-key:578 cli/detect/config/gitleaks.toml:gcp-api-key:579 cli/detect/config/gitleaks.toml:gcp-api-key:581 cli/detect/config/gitleaks.toml:gcp-api-key:582 +.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml:generic-api-key:51 +.github/workflows/run-helm-chart-tests-infisical-standalone-postgres.yml:generic-api-key:50 +.github/workflows/helm-release-infisical-core.yml:generic-api-key:48 +.github/workflows/helm-release-infisical-core.yml:generic-api-key:47 diff --git a/ct.yaml b/ct.yaml index 4c834ae03b..cbc673111a 100644 --- a/ct.yaml +++ b/ct.yaml @@ -10,3 +10,5 @@ kube-versions: - v1.33.0 validate-maintainers: false + +kubectl-timeout: 300s diff --git a/helm-charts/infisical-standalone-postgres/values.yaml b/helm-charts/infisical-standalone-postgres/values.yaml index 2bcd0e2833..d617a1389b 100644 --- a/helm-charts/infisical-standalone-postgres/values.yaml +++ b/helm-charts/infisical-standalone-postgres/values.yaml @@ -5,8 +5,10 @@ nameOverride: "" fullnameOverride: "" infisical: - enabled: true # -- Enable Infisical chart deployment - name: infisical # -- Sets the name of the deployment within this chart + # -- Enable Infisical chart deployment + enabled: true + # -- Sets the name of the deployment within this chart + name: infisical # -- Automatically migrates new database schema when deploying autoDatabaseSchemaMigration: true @@ -67,7 +69,7 @@ infisical: resources: limits: # -- Memory limit for Infisical container - memory: 600Mi + memory: 1000Mi requests: # -- CPU request for Infisical container cpu: 350m