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

Basic Skupper Helm chart #1627

Open
wants to merge 1 commit into
base: v2
Choose a base branch
from
Open
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
4 changes: 4 additions & 0 deletions deployments/helm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v2
name: skupper-namespace-setup
description: Helm chart for setting up Skupper in a namespace.
version: 0.1.0
20 changes: 20 additions & 0 deletions deployments/helm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
### Description

This Helm chart is designed to simplify the deployment of Skupper in a Kubernetes namespace.
It ensures that the Skupper Custom Resource Definitions (CRDs) and the Skupper controller
are correctly installed and configured.

### Usage:
To deploy Skupper using this Helm chart, simply run the following command, specifying your
namespace:

```
helm install skupper-namespace-setup . --namespace <your-namespace>
```

If the namespace is not specified it will be deployed in the current namespace.

### How to uninstall the helm chart
```
helm uninstall skupper-namespace-setup
```
102 changes: 102 additions & 0 deletions deployments/helm/crds/skupper_access_grant_crd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally the CRDs would be defined in one place or copied by the build. Otherwise it is easy to make changes to one copy and not the other.

metadata:
name: accessgrants.skupper.io
spec:
group: skupper.io
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
redemptionsAllowed:
type: integer
expirationWindow:
type: string
format: duration
code:
type: string
issuer:
type: string
status:
type: object
properties:
url:
type: string
code:
type: string
ca:
type: string
redeemed:
type: integer
expiration:
type: string
format: date-time
status:
type: string
conditions:
type: array
items:
type: object
properties:
lastTransitionTime:
format: date-time
type: string
message:
maxLength: 32768
type: string
observedGeneration:
format: int64
minimum: 0
type: integer
reason:
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
enum:
- "True"
- "False"
- Unknown
type: string
type:
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][- A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
subresources:
status: {}
additionalPrinterColumns:
- name: Redemptions Allowed
type: integer
description: The number of claims the grant is valid for
jsonPath: .spec.claims
- name: Redemptions Made
type: integer
description: The number of times an access token originating from this grant has been redeemed
jsonPath: .status.redeemed
- name: Expiration
type: string
description: When the grant will expire
jsonPath: .status.expiration
- name: Status
type: string
description: The status of the grant
jsonPath: .status.status
scope: Namespaced
names:
plural: accessgrants
singular: accessgrant
kind: AccessGrant
90 changes: 90 additions & 0 deletions deployments/helm/crds/skupper_access_token_crd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: accesstokens.skupper.io
spec:
group: skupper.io
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
url:
type: string
code:
type: string
ca:
type: string
required:
- url
- code
- ca
status:
type: object
properties:
redeemed:
type: boolean
status:
type: string
conditions:
type: array
items:
type: object
properties:
lastTransitionTime:
format: date-time
type: string
message:
maxLength: 32768
type: string
observedGeneration:
format: int64
minimum: 0
type: integer
reason:
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
enum:
- "True"
- "False"
- Unknown
type: string
type:
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][- A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
subresources:
status: {}
additionalPrinterColumns:
- name: URL
type: string
description: The URL the access token is redeemed at
jsonPath: .spec.url
- name: Redeemed
type: boolean
description: Whether the access token has already been redeemed
jsonPath: .status.redeemed
- name: Status
type: string
description: The status of the access token
jsonPath: .status.status
scope: Namespaced
names:
plural: accesstokens
singular: accesstoken
kind: AccessToken
91 changes: 91 additions & 0 deletions deployments/helm/crds/skupper_attached_connector_anchor_crd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: attachedconnectoranchors.skupper.io
spec:
group: skupper.io
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
connectorNamespace:
type: string
routingKey:
type: string
required:
- connectorNamespace
- routingKey
status:
type: object
properties:
status:
type: string
conditions:
type: array
items:
type: object
properties:
lastTransitionTime:
format: date-time
type: string
message:
maxLength: 32768
type: string
observedGeneration:
format: int64
minimum: 0
type: integer
reason:
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
enum:
- "True"
- "False"
- Unknown
type: string
type:
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][- A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
matchingListenerCount:
type: integer
subresources:
status: {}
additionalPrinterColumns:
- name: Routing Key
type: string
description: An identifier that associates connectors with listeners.
jsonPath: .spec.routingKey
- name: Connector Namespace
type: string
description: The namespace where the associated AttachableConnector is located.
jsonPath: .spec.connectorNamespace
- name: Status
type: string
description: The status of the connector
jsonPath: .status.status
- name: Matching Listener Count
type: integer
description: The number of listeners in the network with a matching routing key.
jsonPath: .status.matchingListenerCount
scope: Namespaced
names:
plural: attachedconnectoranchors
singular: attachedconnectoranchor
kind: AttachedConnectorAnchor
Loading