This package provides educates-cluster-essentials functionality using educates-cluster-essentials.
- contour
- kyverno
- metacontroller
- external-dns
- cert-manager
- certs
- TODO: registry
This is some information useful for developing this package:
./scenarios/test-scenarios.sh
### How to test in real cluster
Create cluster:
kind create custer --config kind-templates/<KIND_TEMPLATE_FOR_SCENARIO>
Deploy scenario:
ytt --data-value-yaml debug=false --data-values-file <SCENARIO> -f src/bundle/config | kapp deploy -a educates -f - -c -y
Deploy a workshop and test:
educates deploy-workshop -f https://github.com/vmware-tanzu-labs/lab-k8s-fundamentals/releases/latest/download/workshop.yaml
educates browse-workshops
Delete scenario:
kapp delete -a educates -c -y
Delete cluster:
kind delete cluster --name test-educates
The following configuration values can be set to customize the educates-cluster-essentials installation.
Value | Required/Optional | Description |
---|---|---|
namespace |
Optional | The namespace in which to deploy educates-cluster-essentials. |
If you want to get the output of the configuration to be applied, use:
ytt --data-values-file test.yaml -f src/bundle/config
But if you want the internal configuration that is going to be used for specific infrastructure, use instead:
ytt --data-values-file test.yaml -f src/bundle/config --data-value-yaml debug=True
NOTE: --data-value-yaml debug=True
does enable output of the internal configuration to be used for the specific infra type.
This walkthrough guides you through using educates-cluster-essentials...
NOTE: develop
version of the package needs to comply with semver, hence the package will be versioned as 0.0.0+develop
Start minikube:
minikube start
Install kapp-controller 0.20+
kubectl apply -f https://github.com/vmware-tanzu/carvel-kapp-controller/releases/latest/download/release.yml
Install the Package Metadata:
kubectl apply -f target/k8s
Install the Required RBAC for the package install (create the control NS):
kubectl apply -f target/test/packageinstall-ns-rbac.yaml
Create the configuration file for your cluster:
kubectl create secret generic educates-cluster-essentials -n educates-cluster-essentials-package --from-file=values.yaml=src/examples-values/minikube.yaml -o yaml --dry-run=client | kubectl apply -f -
Create the package:
kubectl apply -f target/test/packageinstall.yaml
Verify the installation:
watch kubectl get packageinstall -A
If there's an issue, you can verify the problem with:
kubectl get packageinstall educates-cluster-essentials -n educates-cluster-essentials-package -o yaml
Edit vendir.yml file and update versions of components. The run:
vendir sync --chdir=src/bundle
- Update your config.json with the package info
- Add overlays and values
- Test your bundle:
ytt --data-values-file scenarios/test-kind-scenario-3.yaml -f src/bundle/config
providing a sample values file from example-values - Build your bundle
./hack/build.sh
- Add it to the failk8s-repo and publish the new repo and test the package from there, or test with local files
NOTE: develop
versions will not be image locked and will have a version of 0.0.0+develop to comply with semver.