Skip to content

Commit baa444d

Browse files
authored
Merge pull request #3 from vdice/feat/marketplace-init
feat(marketplace): initial marketplace directory with helm charts
2 parents 69cae0c + bafb733 commit baa444d

File tree

88 files changed

+7074
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+7074
-0
lines changed

marketplace/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# SpinKube for Azure Marketplace
2+
3+
This directory holds assets comprising a SpinKube offering on [Azure Marketplace](https://learn.microsoft.com/en-us/partner-center/marketplace-offers/).
4+
5+
These resources aren't necessarily meant to be used directly. Rather, they represent the assets bundled together to form a Marketplace offering, which users can then install via the Azure portal.
6+
7+
- [spinkube-azure-marketplace Helm chart](./charts/spinkube-azure-marketplace/)
8+
9+
## TODO
10+
11+
- [manifest.yaml](./manifest.yaml)
12+
- [Test parameter file](./parameterFile.json)
13+
- [ARM template](./mainTemplate.json)
14+
- [createUIDefinition.json](./createUIDefinition.json)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
dependencies:
2+
- name: spin-operator
3+
repository: file://charts/spin-operator
4+
version: 0.1.0
5+
- name: cert-manager
6+
repository: file://charts/cert-manager
7+
version: v0.1.0
8+
- name: kwasm-operator
9+
repository: file://charts/kwasm-operator
10+
version: 0.2.3
11+
digest: sha256:2b941a3f31eb39c2738e801f30881e3ed734379ae50968cf2419c2929386f4ff
12+
generated: "2024-06-12T14:02:14.844986-06:00"
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apiVersion: v2
2+
name: spinkube-azure-marketplace
3+
description: A Helm chart for SpinKube on Azure Marketplace
4+
5+
# A chart can be either an 'application' or a 'library' chart.
6+
#
7+
# Application charts are a collection of templates that can be packaged into versioned archives
8+
# to be deployed.
9+
#
10+
# Library charts provide useful utilities or functions for the chart developer. They're included as
11+
# a dependency of application charts to inject those utilities and functions into the rendering
12+
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
13+
type: application
14+
15+
# This is the chart version. This version number should be incremented each time you make changes
16+
# to the chart and its templates, including the app version.
17+
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18+
version: 0.1.0
19+
20+
# This is the version number of the application being deployed. This version number should be
21+
# incremented each time you make changes to the application. Versions are not expected to
22+
# follow Semantic Versioning. They should reflect the version the application is using.
23+
# It is recommended to use it with quotes.
24+
appVersion: "0.1.0"
25+
26+
27+
dependencies:
28+
- name: spin-operator
29+
version: "0.1.0"
30+
repository: "file://charts/spin-operator"
31+
condition: spin-operator.enabled
32+
- name: cert-manager
33+
version: v0.1.0
34+
repository: "file://charts/cert-manager"
35+
condition: cert-manager.enabled
36+
- name: kwasm-operator
37+
version: 0.2.3
38+
repository: "file://charts/kwasm-operator"
39+
condition: kwasm-operator.enabled
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# SpinKube for Azure Marketplace Helm Chart
2+
3+
This is a Helm chart for a SpinKube offering on [Azure Marketplace](https://learn.microsoft.com/en-us/partner-center/marketplace-offers/).
4+
5+
This chart isn't intended for users to install directly, although it is possible to do so. Rather, it is bundled together with other assets in the [marketplace](../../../marketplace/) directory as a Azure Marketplace offering. End users can then install SpinKube via the Azure portal.
6+
7+
## Assembly
8+
9+
Azure Marketplace requires that all images references in an offering's chart (and any dependency sub-charts) must follow
10+
the pattern of `global.azure.images.<image>`. See the [documentation for more details](https://learn.microsoft.com/en-us/partner-center/marketplace/azure-container-technical-assets-kubernetes?tabs=linux%2Clinux2#update-the-helm-chart).
11+
12+
To comply, all of the sub-charts have been manually forked and updated appropriately. Here is a brief listing of chart and version (or git tag) to track pending automation:
13+
14+
- **Spin Operator**
15+
16+
[v0.2.0 tag of spinkube/spin-operator](https://github.com/spinkube/spin-operator/tree/v0.2.0/charts/spin-operator)
17+
18+
- **Cert Manager**
19+
20+
[v1.14.3 tag of cert-manager/cert-manager](https://github.com/cert-manager/cert-manager/tree/v1.14.3/deploy/charts/cert-manager)
21+
22+
- **Kwasm Operator**
23+
24+
[kwasm-operator-0.2.3 tag of kwasm/kwasm-operator](https://github.com/KWasm/kwasm-operator/tree/kwasm-operator-0.2.3/charts/kwasm-operator)
25+
26+
### Other notes
27+
28+
- Currently this marketplace chart uses a symbolic link to the top-level `crds/` folder
29+
- It doesn't do the same for the `templates/` folder mostly because of the image reference modification to `templates/kwasm.annotation.yaml`,
30+
but we may want to revisit this in the future if there are more shareable templates added
31+
32+
## Installation
33+
34+
To install this chart onto a cluster, first create your Kubernetes cluster.
35+
36+
You can follow [these steps to create an AKS cluster](../README.md#create-a-new-aks-cluster).
37+
38+
## Install SpinKube
39+
40+
```bash
41+
helm upgrade --install spinkube \
42+
./charts/spinkube-azure-marketplace \
43+
--wait \
44+
--namespace spinkube \
45+
--create-namespace
46+
47+
kubectl apply -f ../spin-operator.shim-executor.yaml
48+
```
49+
50+
## Deploy a Spin App
51+
```bash
52+
kubectl apply -f https://raw.githubusercontent.com/spinkube/spin-operator/main/config/samples/simple.yaml
53+
```
54+
55+
and then check the status of the Spin App:
56+
```bash
57+
kubectl port-forward services/simple-spinapp 8080:80
58+
```
59+
```bash
60+
curl http://localhost:8080/hello
61+
```
62+
63+
## TODO
64+
65+
- Include shim-executor installation in chart (perhaps via approach used in https://github.com/jpflueger/spinkube-oneclick)
66+
- Probably applies to both root-level chart and this marketplace chart
Binary file not shown.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.tgz
2+
charts/*
3+
requirements.lock
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*~
18+
# Various IDEs
19+
.project
20+
.idea/
21+
*.tmproj
22+
23+
BUILD.bazel
24+
Chart.template.yaml
25+
README.template.md
26+
OWNERS
27+
cert-manager*.tgz
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
apiVersion: v1
2+
name: cert-manager
3+
# The version and appVersion fields are set automatically by the release tool
4+
version: v0.1.0
5+
appVersion: v0.1.0
6+
kubeVersion: ">= 1.22.0-0"
7+
description: A Helm chart for cert-manager
8+
home: https://github.com/cert-manager/cert-manager
9+
icon: https://raw.githubusercontent.com/cert-manager/cert-manager/d53c0b9270f8cd90d908460d69502694e1838f5f/logo/logo-small.png
10+
keywords:
11+
- cert-manager
12+
- kube-lego
13+
- letsencrypt
14+
- tls
15+
sources:
16+
- https://github.com/cert-manager/cert-manager
17+
maintainers:
18+
- name: cert-manager-maintainers
19+
20+
url: https://cert-manager.io
21+
annotations:
22+
artifacthub.io/license: Apache-2.0
23+
artifacthub.io/prerelease: "{{IS_PRERELEASE}}"

0 commit comments

Comments
 (0)