-
Notifications
You must be signed in to change notification settings - Fork 403
Create Helm Chart from Static Manifests #1285
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
name: Release Charts | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
release: | ||
permissions: | ||
contents: write | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Configure Git | ||
run: | | ||
git config user.name "$GITHUB_ACTOR" | ||
git config user.email "[email protected]" | ||
|
||
- name: Run chart-releaser | ||
uses: helm/[email protected] | ||
env: | ||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Patterns to ignore when building packages. | ||
# This supports shell glob matching, relative path matching, and | ||
# negation (prefixed with !). Only one pattern per line. | ||
.DS_Store | ||
# Common VCS dirs | ||
.git/ | ||
.gitignore | ||
.bzr/ | ||
.bzrignore | ||
.hg/ | ||
.hgignore | ||
.svn/ | ||
# Common backup files | ||
*.swp | ||
*.bak | ||
*.tmp | ||
*.orig | ||
*~ | ||
# Various IDEs | ||
.project | ||
.idea/ | ||
*.tmproj | ||
.vscode/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
apiVersion: v2 | ||
name: csi-snapshotter | ||
description: A Helm chart for deploy the CSI snapshotter together with the hostpath CSI driver | ||
|
||
# A chart can be either an 'application' or a 'library' chart. | ||
# | ||
# Application charts are a collection of templates that can be packaged into versioned archives | ||
# to be deployed. | ||
# | ||
# Library charts provide useful utilities or functions for the chart developer. They're included as | ||
# a dependency of application charts to inject those utilities and functions into the rendering | ||
# pipeline. Library charts do not define any templates and therefore cannot be deployed. | ||
type: application | ||
|
||
# This is the chart version. This version number should be incremented each time you make changes | ||
# to the chart and its templates, including the app version. | ||
# Versions are expected to follow Semantic Versioning (https://semver.org/) | ||
version: v8.2.0 | ||
|
||
# This is the version number of the application being deployed. This version number should be | ||
# incremented each time you make changes to the application. Versions are not expected to | ||
# follow Semantic Versioning. They should reflect the version the application is using. | ||
# It is recommended to use it with quotes. | ||
appVersion: v8.2.0 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
apiVersion: apiextensions.k8s.io/v1 | ||
kind: CustomResourceDefinition | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not sure what the official helm recommendation is on CRDs, but I like to put them in another helm chart in case there is a migration. Maybe if your CRD doesn't change much, you could handle migrations differently. Helm does have a HIP around CRD handling helm/community#379 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. From today point of view, even if I am using cert-manager + helm, during upgrade we also need some special handling (see https://cert-manager.io/docs/installation/upgrade/#crds-managed-using-helm):
So I don't think we could do something specially better than that :-( |
||
metadata: | ||
annotations: | ||
api-approved.kubernetes.io: https://github.com/kubernetes-csi/external-snapshotter/pull/1150 | ||
controller-gen.kubebuilder.io/version: v0.15.0 | ||
name: volumegroupsnapshotclasses.groupsnapshot.storage.k8s.io | ||
spec: | ||
group: groupsnapshot.storage.k8s.io | ||
names: | ||
kind: VolumeGroupSnapshotClass | ||
listKind: VolumeGroupSnapshotClassList | ||
plural: volumegroupsnapshotclasses | ||
shortNames: | ||
- vgsclass | ||
- vgsclasses | ||
singular: volumegroupsnapshotclass | ||
scope: Cluster | ||
versions: | ||
- additionalPrinterColumns: | ||
- jsonPath: .driver | ||
name: Driver | ||
type: string | ||
- description: Determines whether a VolumeGroupSnapshotContent created through the VolumeGroupSnapshotClass should be deleted when its bound VolumeGroupSnapshot is deleted. | ||
jsonPath: .deletionPolicy | ||
name: DeletionPolicy | ||
type: string | ||
- jsonPath: .metadata.creationTimestamp | ||
name: Age | ||
type: date | ||
name: v1beta1 | ||
schema: | ||
openAPIV3Schema: | ||
description: |- | ||
VolumeGroupSnapshotClass specifies parameters that a underlying storage system | ||
uses when creating a volume group snapshot. A specific VolumeGroupSnapshotClass | ||
is used by specifying its name in a VolumeGroupSnapshot object. | ||
VolumeGroupSnapshotClasses are non-namespaced. | ||
properties: | ||
apiVersion: | ||
description: |- | ||
APIVersion defines the versioned schema of this representation of an object. | ||
Servers should convert recognized schemas to the latest internal value, and | ||
may reject unrecognized values. | ||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | ||
type: string | ||
deletionPolicy: | ||
description: |- | ||
DeletionPolicy determines whether a VolumeGroupSnapshotContent created | ||
through the VolumeGroupSnapshotClass should be deleted when its bound | ||
VolumeGroupSnapshot is deleted. | ||
Supported values are "Retain" and "Delete". | ||
"Retain" means that the VolumeGroupSnapshotContent and its physical group | ||
snapshot on underlying storage system are kept. | ||
"Delete" means that the VolumeGroupSnapshotContent and its physical group | ||
snapshot on underlying storage system are deleted. | ||
Required. | ||
enum: | ||
- Delete | ||
- Retain | ||
type: string | ||
driver: | ||
description: |- | ||
Driver is the name of the storage driver expected to handle this VolumeGroupSnapshotClass. | ||
Required. | ||
type: string | ||
kind: | ||
description: |- | ||
Kind is a string value representing the REST resource this object represents. | ||
Servers may infer this from the endpoint the client submits requests to. | ||
Cannot be updated. | ||
In CamelCase. | ||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | ||
type: string | ||
metadata: | ||
type: object | ||
parameters: | ||
additionalProperties: | ||
type: string | ||
description: |- | ||
Parameters is a key-value map with storage driver specific parameters for | ||
creating group snapshots. | ||
These values are opaque to Kubernetes and are passed directly to the driver. | ||
type: object | ||
required: | ||
- deletionPolicy | ||
- driver | ||
type: object | ||
served: true | ||
storage: true | ||
subresources: {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you expecting that the chart would never change for an csi-snapshotter version? So a chart change would go out as a bug fix maybe?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for my late reply.
As mentioned in this PR GIT commit message, we just need to update with:
The update of this line will also be managed with the provided
./deploy/util/chart-releaser.sh
.