Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 14 additions & 0 deletions marketplace/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SpinKube for Azure Marketplace

This directory holds assets comprising a SpinKube offering on [Azure Marketplace](https://learn.microsoft.com/en-us/partner-center/marketplace-offers/).

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.

- [spinkube-azure-marketplace Helm chart](./charts/spinkube-azure-marketplace/)

## TODO

- [manifest.yaml](./manifest.yaml)
- [Test parameter file](./parameterFile.json)
- [ARM template](./mainTemplate.json)
- [createUIDefinition.json](./createUIDefinition.json)
12 changes: 12 additions & 0 deletions marketplace/charts/spinkube-azure-marketplace/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
dependencies:
- name: spin-operator
repository: file://charts/spin-operator
version: 0.1.0
- name: cert-manager
repository: file://charts/cert-manager
version: v0.1.0
- name: kwasm-operator
repository: file://charts/kwasm-operator
version: 0.2.3
digest: sha256:2b941a3f31eb39c2738e801f30881e3ed734379ae50968cf2419c2929386f4ff
generated: "2024-06-12T14:02:14.844986-06:00"
39 changes: 39 additions & 0 deletions marketplace/charts/spinkube-azure-marketplace/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
apiVersion: v2
name: spinkube-azure-marketplace
description: A Helm chart for SpinKube on Azure Marketplace

# 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: 0.1.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: "0.1.0"


dependencies:
- name: spin-operator
version: "0.1.0"
repository: "file://charts/spin-operator"
condition: spin-operator.enabled
- name: cert-manager
version: v0.1.0
repository: "file://charts/cert-manager"
condition: cert-manager.enabled
- name: kwasm-operator
version: 0.2.3
repository: "file://charts/kwasm-operator"
condition: kwasm-operator.enabled
66 changes: 66 additions & 0 deletions marketplace/charts/spinkube-azure-marketplace/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# SpinKube for Azure Marketplace Helm Chart

This is a Helm chart for a SpinKube offering on [Azure Marketplace](https://learn.microsoft.com/en-us/partner-center/marketplace-offers/).

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.

## Assembly

Azure Marketplace requires that all images references in an offering's chart (and any dependency sub-charts) must follow
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).

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:

- **Spin Operator**

[v0.2.0 tag of spinkube/spin-operator](https://github.com/spinkube/spin-operator/tree/v0.2.0/charts/spin-operator)

- **Cert Manager**

[v1.14.3 tag of cert-manager/cert-manager](https://github.com/cert-manager/cert-manager/tree/v1.14.3/deploy/charts/cert-manager)

- **Kwasm Operator**

[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)

### Other notes

- Currently this marketplace chart uses a symbolic link to the top-level `crds/` folder
- It doesn't do the same for the `templates/` folder mostly because of the image reference modification to `templates/kwasm.annotation.yaml`,
but we may want to revisit this in the future if there are more shareable templates added

## Installation

To install this chart onto a cluster, first create your Kubernetes cluster.

You can follow [these steps to create an AKS cluster](../README.md#create-a-new-aks-cluster).

## Install SpinKube

```bash
helm upgrade --install spinkube \
./charts/spinkube-azure-marketplace \
--wait \
--namespace spinkube \
--create-namespace

kubectl apply -f ../spin-operator.shim-executor.yaml
```

## Deploy a Spin App
```bash
kubectl apply -f https://raw.githubusercontent.com/spinkube/spin-operator/main/config/samples/simple.yaml
```

and then check the status of the Spin App:
```bash
kubectl port-forward services/simple-spinapp 8080:80
```
```bash
curl http://localhost:8080/hello
```

## TODO

- Include shim-executor installation in chart (perhaps via approach used in https://github.com/jpflueger/spinkube-oneclick)
- Probably applies to both root-level chart and this marketplace chart
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.tgz
charts/*
requirements.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 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
*~
# Various IDEs
.project
.idea/
*.tmproj

BUILD.bazel
Chart.template.yaml
README.template.md
OWNERS
cert-manager*.tgz
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: v1
name: cert-manager
# The version and appVersion fields are set automatically by the release tool
version: v0.1.0
appVersion: v0.1.0
kubeVersion: ">= 1.22.0-0"
description: A Helm chart for cert-manager
home: https://github.com/cert-manager/cert-manager
icon: https://raw.githubusercontent.com/cert-manager/cert-manager/d53c0b9270f8cd90d908460d69502694e1838f5f/logo/logo-small.png
keywords:
- cert-manager
- kube-lego
- letsencrypt
- tls
sources:
- https://github.com/cert-manager/cert-manager
maintainers:
- name: cert-manager-maintainers
email: cert-manager-maintainers@googlegroups.com
url: https://cert-manager.io
annotations:
artifacthub.io/license: Apache-2.0
artifacthub.io/prerelease: "{{IS_PRERELEASE}}"
Loading