Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ spec:
# The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
# The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to "helm".
helmRegistryConfigFile: null
# HelmRepository specifies OCI repository containing Helm charts of system Applications.
# HelmRepository specifies OCI repository containing Helm charts of system Applications e.g. oci://localhost:5000/myrepo.
helmRepository: quay.io/kubermatic/helm-charts
# Versions configures the available and default Kubernetes versions and updates.
versions:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ spec:
# The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
# The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to "helm".
helmRegistryConfigFile: null
# HelmRepository specifies OCI repository containing Helm charts of system Applications.
# HelmRepository specifies OCI repository containing Helm charts of system Applications e.g. oci://localhost:5000/myrepo.
helmRepository: quay.io/kubermatic/helm-charts
# Versions configures the available and default Kubernetes versions and updates.
versions:
Expand Down
2 changes: 1 addition & 1 deletion content/kubermatic/main/data/kubermaticConfiguration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ spec:
# The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
# The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to "helm".
helmRegistryConfigFile: null
# HelmRepository specifies OCI repository containing Helm charts of system Applications.
# HelmRepository specifies OCI repository containing Helm charts of system Applications e.g. oci://localhost:5000/myrepo.
helmRepository: quay.io/kubermatic/helm-charts
# Versions configures the available and default Kubernetes versions and updates.
versions:
Expand Down
137 changes: 137 additions & 0 deletions content/kubermatic/main/data/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -27177,6 +27177,11 @@
"type": "string",
"x-go-name": "Description"
},
"displayName": {
"description": "DisplayName is the name for the application that will be displayed in the UI.",
"type": "string",
"x-go-name": "DisplayName"
},
"documentationURL": {
"description": "DocumentationURL holds a link to official documentation of the Application\nAlternatively this can be a link to the Readme of a chart in a git repository",
"type": "string",
Expand Down Expand Up @@ -27228,6 +27233,11 @@
"type": "string",
"x-go-name": "Description"
},
"displayName": {
"description": "DisplayName is the name for the application that will be displayed in the UI.",
"type": "string",
"x-go-name": "DisplayName"
},
"documentationURL": {
"description": "DocumentationURL holds a link to official documentation of the Application\nAlternatively this can be a link to the Readme of a chart in a git repository",
"type": "string",
Expand Down Expand Up @@ -29159,6 +29169,29 @@
"type": "string",
"x-go-package": "k8s.io/api/core/v1"
},
"ConfigMapKeySelector": {
"description": "+structType=atomic",
"type": "object",
"title": "Selects a key from a ConfigMap.",
"properties": {
"key": {
"description": "The key to select.",
"type": "string",
"x-go-name": "Key"
},
"name": {
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?\n+optional",
"type": "string",
"x-go-name": "Name"
},
"optional": {
"description": "Specify whether the ConfigMap or its key must be defined\n+optional",
"type": "boolean",
"x-go-name": "Optional"
}
},
"x-go-package": "k8s.io/api/core/v1"
},
"Constraint": {
"description": "Constraint represents a gatekeeper Constraint",
"type": "object",
Expand Down Expand Up @@ -30712,6 +30745,45 @@
"type": "object",
"x-go-package": "k8c.io/dashboard/v2/pkg/api/v1"
},
"EnvVar": {
"type": "object",
"title": "EnvVar represents an environment variable present in a Container.",
"properties": {
"name": {
"description": "Name of the environment variable. Must be a C_IDENTIFIER.",
"type": "string",
"x-go-name": "Name"
},
"value": {
"description": "Variable references $(VAR_NAME) are expanded\nusing the previously defined environment variables in the container and\nany service environment variables. If a variable cannot be resolved,\nthe reference in the input string will be unchanged. Double $$ are reduced\nto a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\n\"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\".\nEscaped references will never be expanded, regardless of whether the variable\nexists or not.\nDefaults to \"\".\n+optional",
"type": "string",
"x-go-name": "Value"
},
"valueFrom": {
"$ref": "#/definitions/EnvVarSource"
}
},
"x-go-package": "k8s.io/api/core/v1"
},
"EnvVarSource": {
"type": "object",
"title": "EnvVarSource represents a source for the value of an EnvVar.",
"properties": {
"configMapKeyRef": {
"$ref": "#/definitions/ConfigMapKeySelector"
},
"fieldRef": {
"$ref": "#/definitions/ObjectFieldSelector"
},
"resourceFieldRef": {
"$ref": "#/definitions/ResourceFieldSelector"
},
"secretKeyRef": {
"$ref": "#/definitions/SecretKeySelector"
}
},
"x-go-package": "k8s.io/api/core/v1"
},
"ErrorDetails": {
"type": "object",
"title": "ErrorDetails contains details about the error.",
Expand Down Expand Up @@ -32504,6 +32576,9 @@
"type": "integer",
"format": "int64",
"x-go-name": "UserProjectsLimit"
},
"webTerminalOptions": {
"$ref": "#/definitions/WebTerminalOptions"
}
},
"x-go-package": "k8c.io/dashboard/v2/pkg/api/v2"
Expand Down Expand Up @@ -35521,6 +35596,24 @@
},
"x-go-package": "k8c.io/kubermatic/v2/pkg/apis/kubermatic/v1"
},
"ObjectFieldSelector": {
"description": "+structType=atomic",
"type": "object",
"title": "ObjectFieldSelector selects an APIVersioned field of an object.",
"properties": {
"apiVersion": {
"description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".\n+optional",
"type": "string",
"x-go-name": "APIVersion"
},
"fieldPath": {
"description": "Path of the field to select in the specified API version.",
"type": "string",
"x-go-name": "FieldPath"
}
},
"x-go-package": "k8s.io/api/core/v1"
},
"ObjectMeta": {
"description": "ObjectMeta defines the set of fields that objects returned from the API have",
"type": "object",
Expand Down Expand Up @@ -37294,6 +37387,26 @@
},
"x-go-package": "k8s.io/api/core/v1"
},
"ResourceFieldSelector": {
"description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format\n+structType=atomic",
"type": "object",
"properties": {
"containerName": {
"description": "Container name: required for volumes, optional for env vars\n+optional",
"type": "string",
"x-go-name": "ContainerName"
},
"divisor": {
"$ref": "#/definitions/Quantity"
},
"resource": {
"description": "Required: resource to select",
"type": "string",
"x-go-name": "Resource"
}
},
"x-go-package": "k8s.io/api/core/v1"
},
"ResourceLabelMap": {
"type": "object",
"title": "ResourceLabelMap defines list of labels grouped by specific resource types.",
Expand Down Expand Up @@ -39115,6 +39228,30 @@
},
"x-go-package": "k8c.io/dashboard/v2/pkg/api/v2"
},
"WebTerminalOptions": {
"type": "object",
"properties": {
"additionalEnvironmentVariables": {
"description": "AdditionalEnvironmentVariables are the additional environment variables that can be set for the Web Terminal.",
"type": "array",
"items": {
"$ref": "#/definitions/EnvVar"
},
"x-go-name": "AdditionalEnvironmentVariables"
},
"enableInternetAccess": {
"description": "EnableInternetAccess enables the Web Terminal feature to access the internet.",
"type": "boolean",
"x-go-name": "EnableInternetAccess"
},
"enabled": {
"description": "Enabled enables the Web Terminal feature for the user clusters.",
"type": "boolean",
"x-go-name": "Enabled"
}
},
"x-go-package": "k8c.io/kubermatic/v2/pkg/apis/kubermatic/v1"
},
"bcBody": {
"type": "object",
"properties": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
+++
title = "Local Kubermatic Kubernetes Platform (KKP) CE Installation"
title = "Local Kubermatic Kubernetes Platform (KKP) Installation"
linkTitle = "Local Installation"
date = 2023-06-26T09:49:10+02:00
weight = 200
Expand All @@ -10,7 +10,7 @@ enableToc = true
Local KKP installation is **not** intended for production setups.
{{% /notice %}}

This page will guide you through using the KKP installer local command `kubermatic-installer local`. This command simplifies and automates the installation of KKP CE using `kind` and a preconfigured KubeVirt seed. The command is intended only for evaluation and local development purposes. For production KKP installation use the [CE installation guide](../install-kkp-ce) or [EE installation guide](../install-kkp-ee).
This page will guide you through using the KKP installer local command `kubermatic-installer local`. This command simplifies and automates the installation of KKP using `kind` and a preconfigured KubeVirt seed. The command is intended only for evaluation and local development purposes. For production KKP installation use the [CE installation guide](../install-kkp-ce) or [EE installation guide](../install-kkp-ee).

## Pre-Installation Requirements

Expand All @@ -29,15 +29,39 @@ Follow these steps to use the KKP installer local command:

**1. Download the installer.** This is the only manual step; there's no need to prepare any configuration since the installer should automatically configure KKP.

If you already have an active KKP license, you can use the enterprise edition installer. Otherwise, use the community edition installer.

{{< tabs name="Setting Kubermatic Edition Environment Variable" >}}
{{% tab name="Community Edition" %}}

```bash
KUBERMATIC_EDITION=ce
```

{{% /tab %}}
{{% tab name="Enterprise Edition" %}}

```bash
KUBERMATIC_EDITION=ee
```

{{% /tab %}}
{{< /tabs >}}

Download the installer:

{{< tabs name="Download the installer" >}}
{{% tab name="Linux" %}}

```bash
VERSION=$(curl -w '%{url_effective}' -I -L -s -S https://github.com/kubermatic/kubermatic/releases/latest -o /dev/null | sed -e 's|.*/v||')
wget https://github.com/kubermatic/kubermatic/releases/download/v${VERSION}/kubermatic-ce-v${VERSION}-linux-amd64.tar.gz
tar -xzvf kubermatic-ce-v${VERSION}-linux-amd64.tar.gz
wget https://github.com/kubermatic/kubermatic/releases/download/v${VERSION}/kubermatic-${KUBERMATIC_EDITION}-v${VERSION}-linux-amd64.tar.gz
tar -xzvf kubermatic-${KUBERMATIC_EDITION}-v${VERSION}-linux-amd64.tar.gz
```

{{% /tab %}}
{{% tab name="MacOS" %}}

```bash
# Determine your macOS processor architecture type
# Replace 'amd64' with 'arm64' if using an Apple Silicon (M1) Mac.
Expand All @@ -46,15 +70,24 @@ export ARCH=amd64
VERSION=$(curl -w '%{url_effective}' -I -L -s -S https://github.com/kubermatic/kubermatic/releases/latest -o /dev/null | sed -e 's|.*/v||')
# For specific version set it explicitly:
# VERSION=2.21.x
wget "https://github.com/kubermatic/kubermatic/releases/download/v${VERSION}/kubermatic-ce-v${VERSION}-darwin-${ARCH}.tar.gz"
tar -xzvf "kubermatic-ce-v${VERSION}-darwin-${ARCH}.tar.gz"
wget "https://github.com/kubermatic/kubermatic/releases/download/v${VERSION}/kubermatic-${KUBERMATIC_EDITION}-v${VERSION}-darwin-${ARCH}.tar.gz"
tar -xzvf "kubermatic-${KUBERMATIC_EDITION}-v${VERSION}-darwin-${ARCH}.tar.gz"
```

{{% /tab %}}
{{< /tabs >}}

You can find more information regarding the download instructions in the [CE installation guide](../install-kkp-ce/#download-the-installer).
You can find more information regarding the download instructions in the [CE installation guide](../install-kkp-ce/#download-the-installer) or [EE installation guide](../install-kkp-ee/#download-the-installer).

**2. Provide the image pull secret (EE)**

**2. Run the `local` command.**
This step is only required if you are using the enterprise edition installer. Replace `${AUTH_TOKEN}` with the Docker authentication JSON provided by Kubermatic and run the following command:

```bash
sed -i 's/<your-auth-token>/${AUTH_TOKEN}/g' examples/kubermatic.example.yaml
```

**3. Run the `local` command.**

```bash
./kubermatic-installer local kind
Expand Down Expand Up @@ -101,12 +134,15 @@ The KKP dashboard is [exposed using `nip.io`](https://nip.io/), and certain brow
By default, KubeVirt is configured to use hardware virtualization. If this is not possible for your setup, consider [setting KubeVirt to use software emulation mode](https://github.com/kubevirt/kubevirt/blob/v1.0.0-rc.0/docs/software-emulation.md).

On Linux, KubeVirt uses the inode notify kernel subsystem `inotify` to watch for changes in certain files. Usually you shouldn't need to configure this but in case you can observe the `virt-handler` failing with

```
kubectl log -nkubevirt ds/virt-handler
...
{"component":"virt-handler","level":"fatal","msg":"Failed to create an inotify watcher","pos":"cert-manager.go:105","reason":"too many open files","timestamp":"2023-06-22T09:58:24.284130Z"}
```

You may need to set the default values higher to ensure KubeVirt operates correctly. How to change this, along with reasonably elevated values, is described below but it's recommended to inspect your system to figure out the correct `inotify` values depending on your needs and current setup.

```bash
sudo sysctl -w fs.inotify.max_user_watches=524288
sudo sysctl -w fs.inotify.max_user_instances=256
Expand Down
7 changes: 4 additions & 3 deletions content/kubermatic/main/references/crds/_index.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ _Appears in:_

| Field | Description |
| --- | --- |
| `displayName` _string_ | DisplayName is the name for the application that will be displayed in the UI. |
| `description` _string_ | Description of the application. what is its purpose |
| `method` _[TemplateMethod](#templatemethod)_ | Method used to install the application |
| `defaultValues` _[RawExtension](#rawextension)_ | DefaultValues specify default values for the UI which are passed to helm templating when creating an application. Comments are not preserved.
Expand Down Expand Up @@ -1427,7 +1428,7 @@ the generated route table's name. If no subnet is defined at cluster creation, t
| `securityGroup` _string_ | The name of a security group associated with the subnet referenced by `subnet`.
If set to empty string at cluster creation, a new security group will be created and this field will be updated to
the generated security group's name. If no subnet is defined at cluster creation, this field should be empty as well. |
| `loadBalancerSKU` _[LBSKU](#lbsku)_ | LoadBalancerSKU sets the LB type that will be used for the Azure cluster, possible values are "basic" and "standard", if empty, "basic" will be used |
| `loadBalancerSKU` _[LBSKU](#lbsku)_ | LoadBalancerSKU sets the LB type that will be used for the Azure cluster, possible values are "basic" and "standard", if empty, "standard" will be used |


[Back to top](#top)
Expand Down Expand Up @@ -1482,7 +1483,7 @@ Defaults to `true` internally if not set. |
| `availabilitySet` _string_ | An availability set that will be associated with nodes created for this cluster. If this field is set to empty string
at cluster creation and `AssignAvailabilitySet` is set to `true`, a new availability set will be created and this field
will be updated to the generated availability set's name. |
| `loadBalancerSKU` _[LBSKU](#lbsku)_ | LoadBalancerSKU sets the LB type that will be used for the Azure cluster, possible values are "basic" and "standard", if empty, "basic" will be used. |
| `loadBalancerSKU` _[LBSKU](#lbsku)_ | LoadBalancerSKU sets the LB type that will be used for the Azure cluster, possible values are "basic" and "standard", if empty, "standard" will be used. |


[Back to top](#top)
Expand Down Expand Up @@ -6828,7 +6829,7 @@ _Appears in:_

| Field | Description |
| --- | --- |
| `helmRepository` _string_ | HelmRepository specifies OCI repository containing Helm charts of system Applications. |
| `helmRepository` _string_ | HelmRepository specifies OCI repository containing Helm charts of system Applications e.g. oci://localhost:5000/myrepo. |
| `helmRegistryConfigFile` _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | HelmRegistryConfigFile optionally holds the ref and key in the secret for the OCI registry credential file.
The value is dockercfg file that follows the same format rules as ~/.docker/config.json
The Secret must exist in the namespace where KKP is installed (default is "kubermatic").
Expand Down
Loading