Skip to content

Commit

Permalink
feat: metrics-operator monorepo setup (#1791)
Browse files Browse the repository at this point in the history
Signed-off-by: odubajDT <ondrej.dubaj@dynatrace.com>
  • Loading branch information
odubajDT committed Aug 3, 2023
1 parent 952712f commit 51445eb
Show file tree
Hide file tree
Showing 5 changed files with 124 additions and 72 deletions.
140 changes: 91 additions & 49 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
klt-tag-name: ${{ steps.release.outputs.tag_name }}
cert-manager-release-created: ${{ steps.release.outputs.klt-cert-manager--release_created }}
cert-manager-tag-name: ${{ steps.release.outputs.klt-cert-manager--tag_name }}
metrics-operator-release-created: ${{ steps.release.outputs.metrics-operator--release_created }}
metrics-operator-tag-name: ${{ steps.release.outputs.metrics-operator--tag_name }}
releases-created: ${{ steps.release.outputs.releases_created }}
build-matrix: ${{ steps.build-matrix.outputs.result }}
steps:
Expand All @@ -42,67 +44,69 @@ jobs:

- name: Release Info
run: |
echo "Release KLT: ${{ steps.release.outputs.release_created }}"
echo "Release KLT Cert Manager: ${{ steps.release.outputs.klt-cert-manager--release_created }}"
echo "Anything to release: ${{ steps.release.outputs.releases_created }}"
echo "Paths to be released: ${{ steps.release.outputs.paths_released }}"
echo "Release KLT: ${{ steps.release.outputs.release_created }}"
echo "Release KLT Cert Manager: ${{ steps.release.outputs.klt-cert-manager--release_created }}"
echo "Release KLT Metrics Operator: ${{ steps.release.outputs.metrics-operator--release_created }}"
echo "Anything to release: ${{ steps.release.outputs.releases_created }}"
echo "Paths to be released: ${{ steps.release.outputs.paths_released }}"
- name: Create build matrix
id: build-matrix
uses: actions/github-script@v6
env:
RELEASE_KLT: ${{ steps.release.outputs.release_created }}
RELEASE_CERT_MANAGER: ${{ steps.release.outputs.klt-cert-manager--release_created }}
RELEASE_METRICS_OPERATOR: ${{ steps.release.outputs.metrics-operator--release_created }}
KLT_TAG: ${{ steps.release.outputs.tag_name }}
CERT_MANAGER_TAG: ${{ steps.release.outputs.klt-cert-manager--tag_name }}
METRICS_OPERATOR_TAG: ${{ steps.release.outputs.metrics-operator--tag_name }}
with:
script: |
const { RELEASE_KLT, RELEASE_CERT_MANAGER, KLT_TAG, CERT_MANAGER_TAG } = process.env
const kltMatrix = [
{
name: "lifecycle-operator",
folder: "lifecycle-operator/",
tagName: KLT_TAG
},
{
name: "metrics-operator",
folder: "metrics-operator/",
tagName: KLT_TAG
},
{
name: "scheduler",
folder: "scheduler/",
tagName: KLT_TAG
},
{
name: "functions-runtime",
folder: "functions-runtime/",
tagName: KLT_TAG
},
{
name: "python-runtime",
folder: "python-runtime/",
tagName: KLT_TAG
}
]
const certManagerMatrix = [
{
const { RELEASE_KLT, RELEASE_CERT_MANAGER, RELEASE_METRICS_OPERATOR, KLT_TAG, CERT_MANAGER_TAG, METRICS_OPERATOR_TAG } = process.env
var result = []
if (RELEASE_KLT === "true") {
result.push(...[
{
name: "lifecycle-operator",
folder: "lifecycle-operator/",
tagName: KLT_TAG
},
{
name: "scheduler",
folder: "scheduler/",
tagName: KLT_TAG
},
{
name: "functions-runtime",
folder: "functions-runtime/",
tagName: KLT_TAG
},
{
name: "python-runtime",
folder: "python-runtime/",
tagName: KLT_TAG
}
])
}
if (RELEASE_CERT_MANAGER === "true") {
result.push({
name: "certificate-operator",
folder: "klt-cert-manager/",
tagName: CERT_MANAGER_TAG
}
]
let result = {}
if (RELEASE_KLT === "true" && RELEASE_CERT_MANAGER === "true") {
result = { config: [...kltMatrix, ...certManagerMatrix]}
} else if (RELEASE_KLT === "true") {
result = { config: kltMatrix }
} else if (RELEASE_CERT_MANAGER === "true") {
result = { config: certManagerMatrix }
})
}
return result
if (RELEASE_METRICS_OPERATOR === "true") {
result.push({
name: "metrics-operator",
folder: "metrics-operator/",
tagName: METRICS_OPERATOR_TAG
})
}
return { config: result }
build-release:
if: needs.release-please.outputs.releases-created == 'true'
Expand Down Expand Up @@ -144,7 +148,8 @@ jobs:
run: |
# Remove artifact prefix from tag so that we get clean image tags
temp="${IMAGE_TAG##klt-}"
echo "IMAGE_TAG=${temp##cert-manager-}" >> "$GITHUB_OUTPUT"
temp="${temp##cert-manager-}"
echo "IMAGE_TAG=${temp##metrics-operator-}" >> "$GITHUB_OUTPUT"
- name: Build Docker Image
id: docker_build_image
Expand Down Expand Up @@ -208,7 +213,7 @@ jobs:
key: build-tools-${{ github.ref_name }}

- name: Cache build tools metrics-operator
if: needs.release-please.outputs.klt-release-created == 'true'
if: needs.release-please.outputs.metrics-operator-release-created == 'true'
id: cache-build-tools-metrics-operator
uses: actions/cache@v3
with:
Expand Down Expand Up @@ -279,7 +284,37 @@ jobs:
make controller-gen release-manifests
cd ..
echo "---" >> klt-cert-manager/config/rendered/release.yaml
cat klt-cert-manager/config/rendered/release.yaml > cert-manager-manifest.yaml
cat >> namespace.yaml << EOF
---
apiVersion: v1
kind: Namespace
metadata:
name: keptn-lifecycle-toolkit-system
---
EOF
cat namespace.yaml \
klt-cert-manager/config/rendered/release.yaml > cert-manager-manifest.yaml
- name: Create Metrics Operator manifest
if: needs.release-please.outputs.metrics-operator-release-created == 'true'
env:
RELEASE_REGISTRY: ghcr.io/keptn
CHART_APPVERSION: ${{ needs.release-please.outputs.metrics-operator-tag-name }}
run: |
cd metrics-operator
make controller-gen release-manifests
cd ..
echo "---" >> metrics-operator/config/rendered/release.yaml
cat >> namespace.yaml << EOF
---
apiVersion: v1
kind: Namespace
metadata:
name: keptn-lifecycle-toolkit-system
---
EOF
cat namespace.yaml \
metrics-operator/config/rendered/release.yaml > metrics-operator-manifest.yaml
- name: Attach KLT release assets
if: needs.release-please.outputs.klt-release-created == 'true'
Expand All @@ -295,6 +330,13 @@ jobs:
tag_name: ${{ needs.release-please.outputs.cert-manager-tag-name }}
files: cert-manager-manifest.yaml

- name: Attach Metrics Operator release assets
if: needs.release-please.outputs.metrics-operator-release-created == 'true'
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ needs.release-please.outputs.metrics-operator-tag-name }}
files: metrics-operator-manifest.yaml

update-docs:
name: Update Documentation
needs:
Expand Down
34 changes: 17 additions & 17 deletions helm/chart/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,23 +136,23 @@ checks

### Keptn Metrics Operator controller

| Name | Description | Value |
| --------------------------------------------------------------------------- | ------------------------------------------------------------- | -------------------------------- |
| `metricsOperator.manager.containerSecurityContext` | Sets security context privileges | |
| `metricsOperator.manager.containerSecurityContext.allowPrivilegeEscalation` | | `false` |
| `metricsOperator.manager.containerSecurityContext.capabilities.drop` | | `["ALL"]` |
| `metricsOperator.manager.containerSecurityContext.privileged` | | `false` |
| `metricsOperator.manager.containerSecurityContext.runAsGroup` | | `65532` |
| `metricsOperator.manager.containerSecurityContext.runAsNonRoot` | | `true` |
| `metricsOperator.manager.containerSecurityContext.runAsUser` | | `65532` |
| `metricsOperator.manager.containerSecurityContext.seccompProfile.type` | | `RuntimeDefault` |
| `metricsOperator.manager.image.repository` | specify registry for manager image | `ghcr.io/keptn/metrics-operator` |
| `metricsOperator.manager.image.tag` | select tag for manager image <!---x-release-please-version--> | `v0.8.1` |
| `metricsOperator.manager.env.exposeKeptnMetrics` | enable metrics exporter | `true` |
| `metricsOperator.manager.env.metricsControllerLogLevel` | sets the log level of Metrics Controller | `0` |
| `metricsOperator.manager.livenessProbe` | custom livenessprobe for manager container | |
| `metricsOperator.manager.readinessProbe` | custom readinessprobe for manager container | |
| `metricsOperator.manager.resources` | specify limits and requests for manager container | |
| Name | Description | Value |
| --------------------------------------------------------------------------- | ------------------------------------------------- | -------------------------------- |
| `metricsOperator.manager.containerSecurityContext` | Sets security context privileges | |
| `metricsOperator.manager.containerSecurityContext.allowPrivilegeEscalation` | | `false` |
| `metricsOperator.manager.containerSecurityContext.capabilities.drop` | | `["ALL"]` |
| `metricsOperator.manager.containerSecurityContext.privileged` | | `false` |
| `metricsOperator.manager.containerSecurityContext.runAsGroup` | | `65532` |
| `metricsOperator.manager.containerSecurityContext.runAsNonRoot` | | `true` |
| `metricsOperator.manager.containerSecurityContext.runAsUser` | | `65532` |
| `metricsOperator.manager.containerSecurityContext.seccompProfile.type` | | `RuntimeDefault` |
| `metricsOperator.manager.image.repository` | specify registry for manager image | `ghcr.io/keptn/metrics-operator` |
| `metricsOperator.manager.image.tag` | select tag for manager image | `v0.8.1` |
| `metricsOperator.manager.env.exposeKeptnMetrics` | enable metrics exporter | `true` |
| `metricsOperator.manager.env.metricsControllerLogLevel` | sets the log level of Metrics Controller | `0` |
| `metricsOperator.manager.livenessProbe` | custom livenessprobe for manager container | |
| `metricsOperator.manager.readinessProbe` | custom readinessprobe for manager container | |
| `metricsOperator.manager.resources` | specify limits and requests for manager container | |

### Global

Expand Down
2 changes: 1 addition & 1 deletion helm/chart/doc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@


## @param metricsOperator.manager.image.repository specify registry for manager image
## @param metricsOperator.manager.image.tag select tag for manager image <!---x-release-please-version-->
## @param metricsOperator.manager.image.tag select tag for manager image

## @param metricsOperator.manager.env.exposeKeptnMetrics enable metrics exporter
## @param metricsOperator.manager.env.metricsControllerLogLevel sets the log level of Metrics Controller
Expand Down
4 changes: 2 additions & 2 deletions metrics-operator/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ ENTRYPOINT ["/manager"]

FROM gcr.io/distroless/static-debian11:nonroot AS production

LABEL org.opencontainers.image.source="https://github.com/keptn/lifecycle-toolkit" \
LABEL org.opencontainers.image.source="https://github.com/keptn/lifecycle-toolkit/metrics-operator" \
org.opencontainers.image.url="https://keptn.sh" \
org.opencontainers.image.title="Keptn Lifecycle Operator" \
org.opencontainers.image.title="Keptn Metrics Operator" \
org.opencontainers.image.vendor="Keptn" \
org.opencontainers.image.licenses="Apache-2.0"

Expand Down
16 changes: 13 additions & 3 deletions release-please-config.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"separate-pull-requests": true,
"last-release-sha": "b37aed920eb766c33ae765ed740bc5e508ac430a",
"last-release-sha": "9bb78bb1c74aeb3524fb258d8c77d8493c42cd4f",
"bump-minor-pre-major": true,
"bump-patch-for-minor-pre-major": true,
"pull-request-title-pattern": "chore: release${component} ${version}",
Expand All @@ -12,15 +12,14 @@
"prerelease": false,
"monorepo-tags": "klt",
"draft": false,
"exclude-paths": ["klt-cert-manager"],
"exclude-paths": ["klt-cert-manager", "metrics-operator"],
"extra-files": [
"README.md",
"operator/config/manager/manager.yaml",
"helm/chart/Chart.yaml",
"Makefile",
"operator/Makefile",
"scheduler/Makefile",
"metrics-operator/Makefile",
"docs/content/en/docs/snippets/tasks/install.md",
"helm/chart/values.yaml",
"helm/chart/README.md"
Expand All @@ -36,6 +35,17 @@
"extra-files": [
"Makefile"
]
},
"metrics-operator": {
"package-name": "metrics-operator",
"changelog-path": "CHANGELOG.md",
"release-type": "go",
"monorepo-tags": "metrics-operator",
"prerelease": false,
"draft": false,
"extra-files": [
"Makefile"
]
}
},
"changelog-sections": [
Expand Down

0 comments on commit 51445eb

Please sign in to comment.