New features
Fallback to Host DNS
We added a new helm option fallbackHostDns
that allows users to access all (!) host cluster services as they would do in the host cluster itself from within the vcluster. This is very beneficial in scenarios where you want to share host cluster services inside the vcluster or use tools such as istio and dapr.
Built-in metrics server
With the new options shown below, vcluster provides v1beta1.metrics.k8s.io
API. This API is widely used by different tools to get information about node or pod CPU and memory usage. While previously you had to install metrics-server inside the vcluster to get this API working, now it is available out of the box with these options to enable it:
proxy:
metricsServer:
nodes:
enabled: true
pods:
enabled: true
Other improvements and changes
Moved to GitHub container registry
New releases are now getting pushed to GitHub registry. In the Helm charts we replaced docker.io references with ghcr.io.
Bring back NodeInternalIP addresses for Nodes
In the previous release, we switched to using NodeHostName address type in the status fields of the Nodes. After some feedback from the users we decided to reintroduce the NodeInternalIP addresses which were used before v0.14.0. These will be enabled by default.
The NodeHostName addresses have seen a small change to the format - vcluster name and namespace are no longer part of the hostname. Previous format has backwards support in this release, but it will be removed in the future.
To match the behavior of vcluster v0.14.x, or to save IPs in the Service CIDR range of the host cluster, disable the use of NodeInternalIP with the values below. But be aware that some tools, such as Prometheus, rely on the Node addresses of the NodeInternalIP type, and thus might not work inside of the vcluster with this feature disabled.
sync:
nodes:
fakeKubeletIPs: false
Generic sync improvements
Generic sync feature has received support for importing cluster scoped resources from the host cluster.
import:
- kind: IngressClass
apiVersion: networking.k8s.io/v1
A field named "optional" was added to the import and export rules for generic sync. If a rule is marked as optional, and the respective CRD is missing in the host cluster, vcluster will start without failing.
export:
- apiVersion: cert-manager.io/v1
kind: Certificate
optional: true
Basic telemetry gathering
In order to better plan for the first major release of vcluster we are implementing some basic telemetry capability. In this first iteration, vcluster syncer component will report some basic anonymized information about the instance, such as syncer version, Kubernetes version, and which flags were set(but not the values). This will allow us to better prioritize areas for better test coverage, performance improvements, and find out which flags are not unused. This telemetry is opt-out. More details will be published in the dedicated docs page - https://www.vcluster.com/docs/telemetry
Full changelog
- feat: add .Values.fallbackHostDns by @FabianKramm in #960
- Proxy host metrics server vcluster by @ishankhare07 in #957
- add import capability for cluster scoped CRDs by @ishankhare07 in #952
- enable optional generic resource syncing by @ishankhare07 in #970
- reimplement fake kubelet services for node InternalIP addresses by @ishankhare07 in #983
- fix: remove vcluster name and namespace from Node hostnames by @matskiv in #987
- add
loft.sh/paused-date
annotation to paused clusters by @Piroddi in #984 - fix: cert expiry should check for cert's expiry date by @neurodrone in #964
- Add serviceAnnotations helm value for all charts by @neogopher in #950
- Add vcluster name/ns labels to Namespaces in multinamespace mode by @matskiv in #988
- Bug Fix: Add check if coredns files exists before trying to apply by @brandonrjacobs in #998
- Fix statefulset broken tamplate by @hiteshwani29 in #997
- Initial telemetry implementation by @matskiv in #991
- docs: Mention cloud costs for load balancer by @kostis-codefresh in #990
- docs: Update security.mdx by @ishankhare07 in #963
- docs: Update synced-resources.mdx by @ishankhare07 in #967
- docs: Update non-root-vcluster.mdx by @matskiv in #971
- fix missing enable multi namespace mode by @ishankhare07 in #1003
- fix(syncer): don't trigger nil pointer bug in library by @rohantmp in #953
- Update parse.go by @FabianKramm in #958
- fix: log only the messages of the correct level by @matskiv in #962
- fix: switch a Warning to Info msg to avoid user confusion by @matskiv in #974
- images: also push to ghcr.io by @rohantmp in #977
- fix: add package:write permission to push ghcr images by @rohantmp in #980
- fix: invalid workflow permission value by @rohantmp in #982
- fix: don't create coredns Configmap when not enabled by @matskiv in #1000
- fix: build problem with CLI container image by @matskiv in #1006
- chore(deps): bump @sideway/formula from 3.0.0 to 3.0.1 in /docs by @dependabot in #949
New Contributors
- @neurodrone made their first contribution in #964
- @Piroddi made their first contribution in #984
- @kostis-codefresh made their first contribution in #990
- @hiteshwani29 made their first contribution in #997
Full Changelog: v0.14.2...v0.15.0