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

[DO NOT MERGE] First swing at minimizing README. #123

Draft
wants to merge 26 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
1a7a45c
CP-22731: add insights-controller chart (#97)
dmepham Nov 14, 2024
fe55e8d
CP-22730: use correct pattern list in config
dmepham Nov 14, 2024
551339d
CP-22730: update doc check location to match normal release path (#100)
dmepham Nov 14, 2024
efe7917
Update Chart.yaml to version 1.0.0-beta
CloudZeroBot Nov 14, 2024
68b1dcf
use latest insights-controller
dmepham Nov 14, 2024
49d41c2
CP-23435: remove duplicate service account name in insights-controlle…
dmepham Nov 15, 2024
3ea1e9b
CP-23426: use insights-controller service account for init job (#104)
dmepham Nov 17, 2024
0e0d5f8
CP-23465: increase default replica count for insights controller (#106)
dmepham Nov 18, 2024
3f85bea
CP-23423: add release doc for 1.0.1-beta release (#107)
dmepham Nov 18, 2024
3e074c2
[CP-23425] add default remote write retries (#108)
dmepham Nov 18, 2024
6d91d10
Release 1.0.2-beta (#109)
dmepham Nov 20, 2024
b039ffc
move release doc to correct location
dmepham Nov 21, 2024
58c4546
Update Chart.yaml to version 1.0.2-beta
CloudZeroBot Nov 21, 2024
12b204a
CP-22730: package both charts in beta release (#110)
dmepham Nov 21, 2024
7aa96df
CP-22730: fix artficat name (#111)
dmepham Nov 21, 2024
10045f2
CP-22730: fix doc path for github release publish (#112)
dmepham Nov 21, 2024
1e6f62c
CP-23740 (Feature/1.0.3 beta release): Validate KSM Metrics at Instal…
bdrennz Dec 5, 2024
45f242d
[CP-23429] merge insights-controller into main chart (#117)
dmepham Dec 10, 2024
8b6f730
[CP-23428] add helm chart for creating cert (#118)
dmepham Dec 11, 2024
fc96f30
CP 24028 add insights controller scape config (#120)
josephbarnett Dec 12, 2024
698c7bf
Update Chart.yaml to version 1.0.0-beta-4
CloudZeroBot Dec 12, 2024
8c88201
CP 23892 add healthcheck (#121)
josephbarnett Dec 13, 2024
c782fca
Update Chart.yaml to version 1.0.0-beta-5
CloudZeroBot Dec 13, 2024
7a95c28
fix beta deploy script
josephbarnett Dec 16, 2024
266472a
First swing at minimizing README.
Dec 19, 2024
f255ada
Took a pop at the values file as well.
Dec 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 41 additions & 21 deletions .github/workflows/build-and-publish-beta-chart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@ on:
workflow_dispatch:
inputs:
version:
description: 'Version to use for the release (beta suffix will be automatically appended (e.g. "0.0.1" + "-beta"))'
required: false
default: ''
description: 'Version to use for the release. Must contain "beta" (e.g. "0.0.1-beta").'
required: true
branch:
description: 'Branch to use for the release'
required: true
Expand Down Expand Up @@ -42,37 +41,53 @@ jobs:
- name: Install Helm
uses: azure/setup-helm@v3

- name: Build Dependencies
- name: Build Insights Controller Dependencies
run: helm dependency update charts/cloudzero-insights-controller/

- name: Package Insights Controller Chart
run: helm package charts/cloudzero-insights-controller/ --destination .deploy

- name: Build Cloudzero Agent Dependencies
run: helm dependency update charts/cloudzero-agent/

# Step 3: Determine Version
- name: Get Github Tag Version
id: version
uses: flatherskevin/semver-action@v1
with:
incrementLevel: patch
source: tags
- name: Package Cloudzero Agent Chart
run: helm package charts/cloudzero-agent/ --destination .deploy

- name: Determine Chart Version
# Step 3: Validate and Set Version
- name: Validate Input Version
run: |
NEW_VERSION=${{ github.event.inputs.version || steps.version.outputs.nextVersion }}
echo "NEW_VERSION=$NEW_VERSION-beta" >> $GITHUB_ENV
if [[ -z "${{ github.event.inputs.version }}" ]]; then
echo "Version input is required."
exit 1
fi
if [[ "${{ github.event.inputs.version }}" != *"beta"* ]]; then
echo "Version must contain 'beta'. Provided version: ${{ github.event.inputs.version }}"
exit 1
fi
echo "NEW_VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV

- name: Update Chart Version
run: |
VERSION_LINE=$(awk '/version:/ && !done {print NR; done=1}' charts/cloudzero-agent/Chart.yaml)
sed -i ''$VERSION_LINE's/.*/version: ${{ env.NEW_VERSION }}/' charts/cloudzero-agent/Chart.yaml

- name: Update Chart Version for insights-controller
run: |
VERSION_LINE=$(awk '/version:/ && !done {print NR; done=1}' charts/cloudzero-insights-controller/Chart.yaml)
sed -i ''$VERSION_LINE's/.*/version: ${{ env.NEW_VERSION }}/' charts/cloudzero-insights-controller/Chart.yaml

- name: Validate Release Notes are Present
run: |
if [ ! -f "docs/releases/${{ env.NEW_VERSION }}.md" ]; then
if [ ! -f "charts/cloudzero-agent/docs/releases/${{ env.NEW_VERSION }}.md" ]; then
echo "Release notes for ${{ env.NEW_VERSION }} are missing. Please create a release notes file at docs/releases/${{ env.NEW_VERSION }}.md"
exit 1
fi

# Step 4: Package and Commit Chart
- name: Package Chart
run: helm package charts/cloudzero-agent/ --destination .deploy
run: |
helm package charts/cloudzero-agent/ --destination .deploy
helm package charts/cloudzero-insights-controller/ --destination .deploy

- name: Commit updated Chart.yaml
run: |
Expand All @@ -84,7 +99,13 @@ jobs:
continue-on-error: true

# Step 7: Handle Artifacts and Update Pages
- name: Upload Chart as Artifact
- name: Upload Insight Controller Chart as Artifact
uses: actions/upload-artifact@v4
with:
name: insights-controller-chart
path: .deploy/cloudzero-insights-controller-${{ env.NEW_VERSION }}.tgz

- name: Upload Cloudzero Agent Chart as Artifact
uses: actions/upload-artifact@v4
with:
name: agent-chart
Expand All @@ -97,6 +118,7 @@ jobs:

- name: Move release Tarball
run: |
cp .deploy/cloudzero-insights-controller-${{ env.NEW_VERSION }}.tgz ./beta/
cp .deploy/cloudzero-agent-${{ env.NEW_VERSION }}.tgz ./beta/
rm -fr .deploy

Expand All @@ -105,7 +127,6 @@ jobs:

- name: Save Index in GH Pages
run: |
# copy the new chart and index.yaml
git add beta
git commit -m "Updating ${{ env.NEW_VERSION }} Index"
git push origin gh-pages
Expand All @@ -117,13 +138,12 @@ jobs:
rm -fr .deploy charts/cloudzero-agent/charts
git reset --hard
# now checkout docs from main
git checkout main -- charts/cloudzero-agent/docs charts/cloudzero-agent/README.md README.md
git checkout ${{ github.event.inputs.branch }} -- charts/cloudzero-agent/docs charts/cloudzero-agent/README.md README.md
git add README.md charts/cloudzero-agent/docs charts/cloudzero-agent/README.md
git commit -m "Update docs for ${{ env.NEW_VERSION }}"
git push origin gh-pages
continue-on-error: true


# Step 5: Create GitHub Release
- name: Create Release
uses: softprops/action-gh-release@v2
Expand All @@ -133,4 +153,4 @@ jobs:
files: .deploy/cloudzero-agent-${{ env.NEW_VERSION }}.tgz
make_latest: false
target_commitish: ${{ env.COMMIT_HASH }}
body_path: ${{ github.workspace }}/docs/releases/${{ env.NEW_VERSION }}.md
body_path: ${{ github.workspace }}/charts/cloudzero-agent/docs/releases/${{ env.NEW_VERSION }}.md
28 changes: 23 additions & 5 deletions .github/workflows/build-and-publish-chart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,18 +66,28 @@ jobs:
VERSION_LINE=$(awk '/version:/ && !done {print NR; done=1}' charts/cloudzero-agent/Chart.yaml)
sed -i ''$VERSION_LINE's/.*/version: ${{ env.NEW_VERSION }}/' charts/cloudzero-agent/Chart.yaml

- name: Update Chart Version for insights-controller
run: |
VERSION_LINE=$(awk '/version:/ && !done {print NR; done=1}' charts/cloudzero-insights-controller/Chart.yaml)
sed -i ''$VERSION_LINE's/.*/version: ${{ env.NEW_VERSION }}/' charts/cloudzero-insights-controller/Chart.yaml

- name: Validate Release Notes are Present
run: |
if [ ! -f "charts/cloudzero-agent/docs/releases/${{ env.NEW_VERSION }}.md" ]; then
echo "Release notes for ${{ env.NEW_VERSION }} are missing. Please create a release notes file at charts/cloudzero-agent/docs/releases/${{ env.NEW_VERSION }}.md"
exit 1
fi

- name: Build Dependencies
- name: Build Insights Controller Dependencies
run: helm dependency update charts/cloudzero-insights-controller/

- name: Package Insights Controller Chart
run: helm package charts/cloudzero-insights-controller/ --destination .deploy

- name: Build Cloudzero Agent Dependencies
run: helm dependency update charts/cloudzero-agent/

# Step 5: Package and Commit Chart
- name: Package Chart
- name: Package Cloudzero Agent Chart
run: helm package charts/cloudzero-agent/ --destination .deploy

- name: Get Main Changelog Beginning Hash
Expand All @@ -104,18 +114,26 @@ jobs:
echo "::set-output name=changes::${CHANGES}"

# Step 7: Handle Artifacts and Update Pages
- name: Upload Chart as Artifact
- name: Upload Insight Controller Chart as Artifact
uses: actions/upload-artifact@v4
with:
name: agent-chart
path: .deploy/cloudzero-insights-controller-${{ env.NEW_VERSION }}.tgz

- name: Upload Cloudzero Agent Chart as Artifact
uses: actions/upload-artifact@v4
with:
name: agent-chart
path: .deploy/cloudzero-agent-${{ env.NEW_VERSION }}.tgz


- name: Checkout GH Pages
run: |
git checkout -f gh-pages

- name: Move release Tarball
run: |
cp .deploy/cloudzero-insights-controller-${{ env.NEW_VERSION }}.tgz ./
cp .deploy/cloudzero-agent-${{ env.NEW_VERSION }}.tgz ./
rm -fr .deploy

Expand All @@ -125,7 +143,7 @@ jobs:
- name: Save Index in GH Pages
run: |
# copy the new chart and index.yaml
git add cloudzero-agent-${{ env.NEW_VERSION }}.tgz index.yaml
git add cloudzero-insights-controller-${{ env.NEW_VERSION }}.tgz cloudzero-agent-${{ env.NEW_VERSION }}.tgz index.yaml
git commit -m "Updating ${{ env.NEW_VERSION }} Index"
git push origin gh-pages
continue-on-error: true
Expand Down
20 changes: 15 additions & 5 deletions .github/workflows/test-chart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ jobs:
env:
# Agent Chart settings (prom repo is to work around issue with chart-testing tool)
PROM_CHART_REPO: https://prometheus-community.github.io/helm-charts
JETSTACK_CHART_REPO: https://charts.jetstack.io
CZ_CHART_REPO: https://cloudzero.github.io/cloudzero-charts
CZ_CHART_BETA_REPO: https://cloudzero.github.io/cloudzero-charts/beta
CLUSTER_NAME: cz-node-agent-ci
CLOUD_ACCOUNT_ID: '00000000'
CZ_API_TOKEN: 'fake-api-token'
Expand All @@ -45,7 +48,7 @@ jobs:
helm dependency update
ct lint --debug --charts . \
--chart-repos=kube-state-metrics=$PROM_CHART_REPO \
--chart-repos=prometheus-node-exporter=$PROM_CHART_REPO \
--chart-repos=cert-manager=$JETSTACK_CHART_REPO \
--helm-lint-extra-args "--set=existingSecretName=api-token,clusterName=$CLUSTER_NAME,cloudAccountId=$CLOUD_ACCOUNT_ID,region=$REGION"

# This job tests the chart on a KinD cluster
Expand Down Expand Up @@ -108,23 +111,30 @@ jobs:
NAMESPACE: monitoring
# Agent Chart settings (prom repo is to work around issue with chart-testing tool)
PROM_CHART_REPO: https://prometheus-community.github.io/helm-charts
JETSTACK_CHART_REPO: https://charts.jetstack.io
CZ_CHART_REPO: https://cloudzero.github.io/cloudzero-charts
CZ_CHART_BETA_REPO: https://cloudzero.github.io/cloudzero-charts/beta
CLUSTER_NAME: cz-node-agent-ci
CLOUD_ACCOUNT_ID: '00000000'
CZ_API_TOKEN: ${{ secrets.CZ_API_TOKEN || 'fake-api-token' }}
REGION: 'us-east-1'
run: |
run: |
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.crds.yaml
kubectl create namespace $NAMESPACE
kubectl create secret -n $NAMESPACE generic api-token --from-literal=value=$CZ_API_TOKEN
cd charts/cloudzero-agent
helm dependency update
ct install --charts . \
--chart-repos=kube-state-metrics=$PROM_CHART_REPO \
--chart-repos=prometheus-node-exporter=$PROM_CHART_REPO \
--chart-repos=cert-manager=$JETSTACK_CHART_REPO \
--namespace $NAMESPACE \
--helm-extra-set-args "\
--set=existingSecretName=api-token \
--set=host=dev-api.cloudzero.com \
--set=clusterName=$CLUSTER_NAME \
--set=cloudAccountId=$CLOUD_ACCOUNT_ID \
--set=region=$REGION \
--set=kube-state-metrics.enabled=true \
--set=prometheus-node-exporter.enabled=true"
--set=insightsController.enabled=true \
--set=insightsController.labels.enabled=true \
--set=insightsController.labels.patterns[0]='.*' \
"
20 changes: 3 additions & 17 deletions charts/cloudzero-agent/BETA-INSTALLATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,7 @@ There are two ways to install a beta version of the chart:
This method installs the latest beta version available.

```sh
helm install <RELEASE_NAME> cloudzero-beta/cloudzero-agent \
--devel \
--set existingSecretName=<NAME_OF_SECRET> \
--set clusterName=<CLUSTER_NAME> \
--set-string cloudAccountId=<CLOUD_ACCOUNT_ID> \
--set region=<REGION> \
--set kube-state-metrics.enabled=<true|false> \
--create-namespace
helm install <RELEASE_NAME> cloudzero-beta/cloudzero-agent -n <NAMESPACE> --create-namespace -f configuration.example.yaml --devel
```

- The `--devel` flag allows Helm to consider beta versions when resolving the chart version.
Expand All @@ -57,17 +50,10 @@ helm install <RELEASE_NAME> cloudzero-beta/cloudzero-agent \
If you want to install a specific beta version, specify it using the `--version` flag:

```sh
helm install <RELEASE_NAME> cloudzero-beta/cloudzero-agent \
--version <CHART_VERSION> \
--set existingSecretName=<NAME_OF_SECRET> \
--set clusterName=<CLUSTER_NAME> \
--set-string cloudAccountId=<CLOUD_ACCOUNT_ID> \
--set region=<REGION> \
--set kube-state-metrics.enabled=<true|false> \
--create-namespace
helm install <RELEASE_NAME> cloudzero-beta/cloudzero-agent -n <NAMESPACE> --create-namespace -f configuration.example.yaml --version <CHART_VERSION>
```

- Replace `<CHART_VERSION>` with the specific beta version (e.g., `0.0.29-beta`).
- Replace `<CHART_VERSION>` with the specific beta version (e.g., `1.0.0-beta`).
- This method does not require the `--devel` flag since you are explicitly specifying the version.

## Listing All Available Versions
Expand Down
10 changes: 5 additions & 5 deletions charts/cloudzero-agent/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ dependencies:
- name: kube-state-metrics
repository: https://prometheus-community.github.io/helm-charts
version: 5.15.3
- name: prometheus-node-exporter
repository: https://prometheus-community.github.io/helm-charts
version: 4.24.0
digest: sha256:827a33fa07fde17be0bf808e0beba3ca7b23c9fc1960580b2ba6d0ecc0b57a3f
generated: "2024-03-20T11:42:44.034766-04:00"
- name: cert-manager
repository: https://charts.jetstack.io
version: v1.15.3
digest: sha256:ef28b222788ce38b63857e7427d8f1dbb7c24e6d01e196049ac5af6209d132f6
generated: "2024-12-12T16:10:45.087982225Z"
13 changes: 7 additions & 6 deletions charts/cloudzero-agent/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v2
name: cloudzero-agent
description: A chart for using Prometheus in agent mode to send cluster metrics to the CloudZero platform.
type: application
version: 0.0.0-dev
version: 1.0.0-beta-5
maintainers:
- name: CloudZero
email: [email protected]
Expand All @@ -11,8 +11,9 @@ dependencies:
- name: kube-state-metrics
version: "5.15.*"
repository: https://prometheus-community.github.io/helm-charts
condition: kube-state-metrics.enabled
- name: prometheus-node-exporter
version: "4.24.*"
repository: https://prometheus-community.github.io/helm-charts
condition: prometheus-node-exporter.enabled
condition: kubeStateMetrics.enabled
alias: kubeStateMetrics
- name: cert-manager
version: v1.15.3
repository: https://charts.jetstack.io
condition: cert-manager.enabled
Loading
Loading