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

OPSEXP-2222 Migrate helm enterprise to kind #998

Merged
merged 40 commits into from
Sep 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
e9e99fc
Migrate helm enterprise to kind
gionn Aug 28, 2023
fb34292
use home env var
gionn Aug 28, 2023
72c9416
fixup helm install
gionn Aug 28, 2023
75f21d7
spit cluster status
gionn Aug 28, 2023
ac7f478
increase default timeout
gionn Aug 28, 2023
b795ccd
cancel in progress
gionn Aug 28, 2023
84fdafe
add test values to shrink deployment
gionn Aug 28, 2023
b97d040
concurrency for helm community too
gionn Aug 28, 2023
2e490ba
fixup secret for adw
gionn Aug 28, 2023
d017236
trouter replica to 1
gionn Aug 28, 2023
5fc7d21
fixup registryPullSecrets
gionn Aug 28, 2023
75df270
update activemq to 3.3.0
gionn Aug 29, 2023
9940855
increase community timeout
gionn Aug 29, 2023
096ccf3
add postman tests
gionn Aug 29, 2023
37f11f2
test requires clustering enabled
gionn Aug 29, 2023
b9d737d
fixup search cpu limit
gionn Aug 29, 2023
95f0f1a
lower timeout to trigger early failure
gionn Aug 29, 2023
ef66eee
set cpu limits to avoid failure
gionn Aug 29, 2023
605ef79
logs repo logs
gionn Aug 29, 2023
cded711
set cpu for community search
gionn Aug 29, 2023
b3a19e6
more logs
gionn Aug 29, 2023
ff84889
increase repo startup probe threshold
gionn Aug 30, 2023
274f28d
increase share initial delay in probes
gionn Aug 30, 2023
e12de18
drop acs logs
gionn Aug 30, 2023
b06e8e2
increase share timeouts
gionn Aug 30, 2023
43d8f8c
increase transformmisc liveness timeout
gionn Aug 30, 2023
288ff79
tune share probes also for community
gionn Aug 30, 2023
f509ee9
increase timeout for transformrouter
gionn Aug 30, 2023
ae1b3a0
spit cluster status after test execution
gionn Aug 30, 2023
1d449c1
add cluster status spit after community
gionn Aug 30, 2023
cee045f
increase share timeout
gionn Aug 30, 2023
94e9457
print solr logs
gionn Aug 30, 2023
7c858dd
retry postman
gionn Aug 30, 2023
f007af0
use alternative newman approach
gionn Aug 30, 2023
adb27b9
increase wait time in each retry
gionn Aug 30, 2023
c1bf45c
cleanup
gionn Aug 30, 2023
f48c1c2
fixup pull secret
gionn Aug 30, 2023
456c092
cleanup
gionn Aug 30, 2023
3c68c69
cleanup
gionn Aug 30, 2023
05c145c
Enable alfresco sync
gionn Aug 30, 2023
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
60 changes: 43 additions & 17 deletions .github/workflows/helm-community.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,45 +14,71 @@ on:
branches:
- master
- release/**
concurrency:
group: helm-com-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
community_charts:
runs-on: [self-hosted, linux, X64]
runs-on: [self-hosted]
steps:
- uses: actions/checkout@v3

- uses: azure/setup-helm@v3
with:
version: "3.12.1"

- name: Login to Docker Hub
uses: docker/login-action@v2
if: ${{ ! github.event.repository.fork }}
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Setup cluster
uses: Alfresco/alfresco-build-tools/.github/actions/setup-kind@v3.1.0
- name: Community local deployment

- name: Create registries auth secret
if: ${{ ! github.event.repository.fork }}
run: |
kubectl create secret generic regcred \
--from-file=.dockerconfigjson=$HOME/.docker/config.json \
--type=kubernetes.io/dockerconfigjson

- name: Helm install
run: |
helm dep up ./helm/alfresco-content-services
helm install acs ./helm/alfresco-content-services \
--set global.tracking.sharedsecret="$(openssl rand -hex 24)" \
--set global.known_urls=http://localhost \
--set global.alfrescoRegistryPullSecrets=regcred \
--wait --timeout 15m0s --values \
test/community-integration-test-values.yaml

- name: Spit cluster status
if: always()
run: |
helm ls --all-namespaces
kubectl get all --all-namespaces
kubectl describe pod

- name: Wait ACS to warm up
run: sleep 60
- name: run Postman tests
uses: matt-ball/newman-action@v1.0.4

- uses: nick-fields/retry@v2
id: newman
with:
globalVar: >-
[
{
"key":"protocol",
"value":"http"
},
{
"key":"url",
"value":"localhost"
}
]
collection: test/postman/helm/acs-test-helm-collection.json
insecure: true
timeout_minutes: 1
retry_wait_seconds: 30
max_attempts: 5
command: >-
docker run --network=host
-v $(pwd)/test/postman:/etc/postman
-t postman/newman run /etc/postman/helm/acs-test-helm-collection.json
--global-var protocol=http --global-var url=localhost

- name: Spit cluster status after tests
if: always() && steps.newman.outcome != 'skipped'
run: |
helm ls --all-namespaces
kubectl get all --all-namespaces
kubectl describe pod
99 changes: 66 additions & 33 deletions .github/workflows/helm-enterprise.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ on:
- master
- release/**
concurrency:
group: ${{ github.head_ref || github.ref_name || github.run_id }}
cancel-in-progress: false
group: helm-ent-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
build_vars:
runs-on: ubuntu-latest
if: >-
github.event_name == 'push'
|| (
github.event.pull_request.head.user.login == 'Alfresco'
! github.event.repository.fork
&& github.actor != 'dependabot[bot]'
)
outputs:
Expand Down Expand Up @@ -54,57 +54,90 @@ jobs:
run: |
CHARTS=$(jq -nc --argjson json '${{ env.JSON }}' '${{ env.JQ_FILTER }}')
echo "json=$CHARTS" >> $GITHUB_OUTPUT

helm_integration:
runs-on: [self-hosted, linux, X64]
runs-on: [self-hosted]
needs:
- build_vars
name: Helm ${{ matrix.name }} ${{ matrix.values }}
strategy:
fail-fast: false
max-parallel: 3
matrix:
include: ${{ fromJSON(needs.build_vars.outputs.ver_json) }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: azure/setup-helm@v3
with:
version: "3.12.1"

- name: Setup aws cli
run: |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

- name: Setup dnsutils
run: |
sudo apt update
sudo apt install -y dnsutils
- name: compute version as expected by deployment script
id: values_to_version

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Login to Quay.io
uses: docker/login-action@v2
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}

- name: Setup cluster
uses: Alfresco/alfresco-build-tools/.github/actions/setup-kind@v3.1.0

- name: Create registries auth secret
run: |
VFILE="${{ matrix.values }}"
if [ "${VFILE}" == 'values.yaml' ]; then V='latest'
else V=${VFILE%_values.yaml}
fi
SANITIZED_V=$(echo ${{ matrix.name }} | sed -r 's/[[:punct:]]?(.)[[:alnum:]]*/\1/g')-${V//./}
SANITIZED_V=${SANITIZED_V,,}
echo "Release prefix to $SANITIZED_V"
echo "app_version=$V" >> $GITHUB_OUTPUT
echo "app_prefix=${SANITIZED_V}" >> $GITHUB_OUTPUT
- uses: >-
Alfresco/alfresco-build-tools/.github/actions/dbp-charts/verify-helm@v3.1.0
kubectl create secret generic regcred \
--from-file=.dockerconfigjson=$HOME/.docker/config.json \
--type=kubernetes.io/dockerconfigjson

- name: Helm install
run: |
helm dep up ./helm/alfresco-content-services
helm install acs ./helm/alfresco-content-services \
--set global.tracking.sharedsecret="$(openssl rand -hex 24)" \
--set global.known_urls=http://localhost \
--set global.alfrescoRegistryPullSecrets=regcred \
--set 'global.registryPullSecrets[0]=regcred' \
gionn marked this conversation as resolved.
Show resolved Hide resolved
--wait --timeout 15m0s \
--values helm/${{ matrix.name }}/${{ matrix.values }} \
--values test/enterprise-integration-test-values.yaml

- name: Spit cluster status after install
if: always()
run: |
helm ls --all-namespaces
kubectl get all --all-namespaces
kubectl describe pod

- uses: nick-fields/retry@v2
id: newman
with:
skip_checkout: "true"
test_newman: "true"
chart_name: ${{ matrix.name }}
release_prefix: ${{ steps.values_to_version.outputs.app_prefix }}
acs_version: ${{ steps.values_to_version.outputs.app_version }}
aws_access_key_id: ${{ secrets.ACS_CLUSTER_AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.ACS_CLUSTER_AWS_SECRET_ACCESS_KEY }}
docker_username: ${{ secrets.DOCKER_USERNAME }}
docker_password: ${{ secrets.DOCKER_PASSWORD }}
quay_username: ${{ secrets.QUAY_USERNAME }}
quay_password: ${{ secrets.QUAY_PASSWORD }}
acm_certificate: ${{ secrets.ACM_CERTIFICATE }}
aws_sg: ${{ secrets.AWS_SG }}
timeout_minutes: 1
retry_wait_seconds: 30
max_attempts: 5
command: >-
docker run --network=host
-v $(pwd)/test/postman:/etc/postman
-t postman/newman run /etc/postman/helm/acs-test-helm-collection.json
--global-var protocol=http --global-var url=localhost

- name: Spit cluster status after tests
if: always() && steps.newman.outcome != 'skipped'
run: |
helm ls --all-namespaces
kubectl get all --all-namespaces
kubectl describe pod
6 changes: 3 additions & 3 deletions helm/alfresco-content-services/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ dependencies:
version: 7.11.0
- name: activemq
repository: https://alfresco.github.io/alfresco-helm-charts/
version: 3.2.0
version: 3.3.0
- name: alfresco-transform-service
repository: https://alfresco.github.io/alfresco-helm-charts/
version: 0.2.0
Expand All @@ -38,5 +38,5 @@ dependencies:
- name: alfresco-ai-transformer
repository: https://alfresco.github.io/alfresco-helm-charts/
version: 0.3.0
digest: sha256:7d87e48347f65a83de9f44e7a22d3e55d94f34b6b1d84bbb36e3c9b65e6aecdb
generated: "2023-08-23T09:36:14.216027+02:00"
digest: sha256:6ad76091912aee0b130d5eef18bb86666eedabe0eb708d2b964c47ef5afe4fb6
generated: "2023-08-29T09:00:00.411365+02:00"
2 changes: 1 addition & 1 deletion helm/alfresco-content-services/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ dependencies:
condition: >-
alfresco-digital-workspace.enabled
- name: activemq
version: 3.2.0
version: 3.3.0
repository: https://alfresco.github.io/alfresco-helm-charts/
condition: activemq.enabled
- name: alfresco-transform-service
Expand Down
2 changes: 1 addition & 1 deletion helm/alfresco-content-services/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/b
|------------|------|---------|
| https://activiti.github.io/activiti-cloud-helm-charts | alfresco-control-center(common) | 7.11.0 |
| https://activiti.github.io/activiti-cloud-helm-charts | alfresco-digital-workspace(common) | 7.11.0 |
| https://alfresco.github.io/alfresco-helm-charts/ | activemq | 3.2.0 |
| https://alfresco.github.io/alfresco-helm-charts/ | activemq | 3.3.0 |
| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-ai-transformer | 0.3.0 |
| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-common | 2.1.0 |
| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-connector-ms365 | 0.4.0 |
Expand Down
33 changes: 23 additions & 10 deletions test/community-integration-test-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ repository:
cpu: "0.01"
memory: "1024Mi"
limits:
cpu: "2"
memory: "1560Mi"
edition: Community
replicaCount: 1
Expand All @@ -19,7 +20,14 @@ share:
cpu: "0.01"
memory: "256Mi"
limits:
cpu: "2"
memory: "512Mi"
readinessProbe:
initialDelaySeconds: 60
timeoutSeconds: 45
livenessProbe:
initialDelaySeconds: 60
timeoutSeconds: 45
image:
repository: alfresco/alfresco-share
alfresco-search:
Expand All @@ -28,70 +36,71 @@ alfresco-search:
cpu: "0.01"
memory: "512Mi"
limits:
cpu: "2"
memory: "1280Mi"
searchServicesImage:
repository: alfresco/alfresco-search-services
alfresco-transform-service:
enabled: true
pdfrenderer: &ats-pdf
pdfrenderer:
livenessProbe:
initialDelaySeconds: 30
resources:
requests:
cpu: "0.01"
memory: "256Mi"
limits:
cpu: "2"
memory: "512Mi"
replicaCount: 1
imagemagick: &ats-im
imagemagick:
livenessProbe:
initialDelaySeconds: 30
resources:
requests:
cpu: "0.01"
memory: "256Mi"
limits:
cpu: "2"
memory: "512Mi"
replicaCount: 1
libreoffice: &ats-lo
libreoffice:
livenessProbe:
initialDelaySeconds: 30
resources:
requests:
cpu: "0.01"
memory: "512Mi"
limits:
cpu: "2"
memory: "1024Mi"
replicaCount: 1
tika: &ats-tika
tika:
livenessProbe:
initialDelaySeconds: 30
resources:
requests:
cpu: "0.01"
memory: "256Mi"
limits:
cpu: "2"
memory: "512Mi"
replicaCount: 1
transformmisc: &ats-misc
transformmisc:
livenessProbe:
initialDelaySeconds: 30
resources:
requests:
cpu: "0.01"
memory: "256Mi"
limits:
cpu: "2"
memory: "512Mi"
replicaCount: 1
transformrouter:
enabled: false
filestore:
enabled: false
pdfrenderer: *ats-pdf
imagemagick: *ats-im
libreoffice: *ats-lo
tika: *ats-tika
transformmisc: *ats-misc
# Disable features
alfresco-digital-workspace:
enabled: false
Expand All @@ -102,6 +111,10 @@ postgresql:
resources:
requests:
cpu: "0.01"
memory: "512Mi"
limits:
cpu: "2"
memory: "1Gi"
ai:
enabled: false
s3connector:
Expand Down
Loading
Loading