Ingress propagation has now moved from extensions/v1beta1.Ingress
to networking.k8s.io/v1.Ingress
.
Ingress propagation was broken on Kubernetes >=v1.22 due to the removal of the extensions/v1beta1
API group. networking.k8s.io/v1.Ingress
has been usable since Kubernetes v1.19 so while this change
could be considered a breaking change, it is required to support propagating Ingress configuration
on Kubernetes versions >=v1.22.
- Update repo for release v0.9.2 by @jimmidyson in #1502
- fix: controller-manager panic when kubeconfig set filed insecure-skip-tls-verify by @xyz-li in #1505
- Make kubefed webhook replica count configurable by @nitinatgh in #1469
- Introduce standard controller runtime metrics by @zqzten in #1506
- fix: Use specific service account token secret for join by @jimmidyson in #1515
- fix: Wait for SA token to be populated by @jimmidyson in #1517
- build: Use KinD for syncing helm chart resources by @jimmidyson in #1518
- build: Ensure correct go-bindata is used by @jimmidyson in #1520
- build: Use setup-envtest to download later version of envtest by @jimmidyson in #1519
- fix: Move ingress from extensions/v1beta1 to networking.k8s.io/v1 by @jimmidyson in #1521
- fixes #1454: add document for intersectWithClusterSelector by @xunpan in #1455
- build: Use k8s v1.24 for tests by @jimmidyson in #1516
- @xyz-li made their first contribution in #1505
Full Changelog: https://github.com/kubernetes-sigs/kubefed/compare/v0.9.2...v0.10.0
- Introduce cluster config malformed condition to KubeFedCluster by @zqzten in #1476
- Handle possible conflict in updating test labels on cluster by @irfanurrehman in #1500
- Introduce Kubernetes version to status of KubeFedCluster by @zqzten in #1501
- Ignore non-targeted clusters during deletion by @jonathanbeber in #1499
- Update runtime-controller v0.10.3 by @tehlers320 in #1492
- @jonathanbeber made their first contribution in #1499
- @tehlers320 made their first contribution in #1492
Full Changelog: https://github.com/kubernetes-sigs/kubefed/compare/v0.9.1...v0.9.2
- #1490 fix: Fix mutatingwebhookconfiguration CA cert when cert-manager is enabled
- #1460 feat: introduce informer cache sync timeout
- #1468 feat: Add pod level annotations
- #1467 fix: KubeFed controller crash when meeting negative array index in overrides
- #1461 fix: Increase the default QPS and Burst value of the controller manager
- #1435 fix: Support Kubernetes pre-release versions in kubefed chart
- #1432 build(deps): Upgrade and align k8s.io dependency versions
- #1424 fix(postinstall-job): Allow postinstall job to choose a docker repo/image
- #1428 fix: retry on recoverable propagation failure
- #1416 feat: Make restclient config configurable
- #1332 fix: Error on existing secrets
- #1379 feat: make objects in workqueue "comparable" to avoid multiple reconciliations on one object at same time
- #1388 fix: added blank import to ensure correct workqueue metric registration
- #1389 fix: use merge-patch on finalizer operations to resolve racing conflicts
- #1393 feat: add intersection behavior for RSP
- #1399 docs: correct command line example for test
- #1400 feat: make concurrency of the worker configurable
- #1409 feat: Use patch to replace update in generic client
- #1410 fix: fixed false api resource error log in kubefedctl
- #1415 feat: Update controller-runtime to v0.8.3
- #1420 build: Switch to Github Actions from Travis
- #1421 docs: update README.md to reflect current projectstate
- #1422 build: Remove need for TTY when running in Github Actions
- #1425 feat: Upgrade to controller-runtime 0.9.0
- #1426 chore: Upgrade golangci-lint and helm
- #1427 chore: Kind and Kubernetes upgrade
- #1380 fix: infinite reconciliation loop.
- #1385 fix: replica rebalance reconciliation.
- #1377 feat: add a proxy url field to kubefed clusters.
- #1382 fix: register workqueue metrics in controller-runtime firstly.
- #1371 chore: enable workqueue metrics for all controllers.
- #1360 chore: remove FederatedIngress feature.
- #1367 fix: webhook command.
- #1361 feature: kubefedcluster use cadata in kubeconfig file.
- #1355 feature: support DeleteOptions when deleting resources in member clusters.
- #1357 chore: Upgrade dependencies.
- #1351 chore: remove feature CrossClusterServiceDiscovery.
- #1346 fix: upgrade path broken from older versions than v0.6.0.
- #1347 chore: retain healthCheckNodePort for service when updating.
- #1334 chore: exec enable cmd ignore some apiservices errors.
- #1328 docs: optimize chart readme.
- #1292 feat: collect remote resource status when enabled.
- #1325 chore: add helm parameter imagePullSecrets.
- #1324 chore: improve some of the deployment and build scripts.
- #1323 make create-clusters.sh work based on kind document.
- #1297 feat: Transition from apiextensions.k8s.io/v1beta1 to apiextensions.k8s.io/v1.
- #1318 chore: make certain cert-manager properties configurable.
- #1315 fix: klog verbosity detection.
- #1310 chore: Add labels to service.
- #1308 chore: upgrade tools.
- #1306 chore: Remove need for insecure registry.
- #1305 chore: disabled FederatedIngress by default.
- #1302 chore: set the tolerations and nodeSelector
- #1301 chore: upgrade kubernetes dependencies.
- #1300 doc: fixing some typos in user guide.
- #1298 chore: disable CrossClusterDiscovery feature by default
- #1294 fix: prefer core resources when enabling a type.
- #1289 chore: use cert-mananager.io/v1 group/version
- #1286 docs: clean up redundant text
- #1282 chore: webhook functions now return AdmissionResponse
- [#1280]((#1280) docs: Add quickstart guide
- [#1279]((#1279) Add a shortname to replicaschedulingpreference
- [#1274]((#1274) Update linters and gofmt scripts
- #1260 Helm 3 chart migration.
- #1269 Go 1.14.7 and dependency updates.
- #1263 Migrate to controller-runtime webhook server from unmaintained /openshift generic-admission-server.
- #1261 Split helm chart values for webhook and controller-manager deployments.
- #1251 Update dependency to kubernetes 1.18.6.
- #1248 Fix service status not working issue.
- #1245 Set default log level for kubefed controller manager.
- #1244 Kubernetes 1.18.5 dependency 1.18.5 and other upgrades.
- #1239 Correct docs for a Cluster Selector case.
- #1236 Increase resource limits for kubefed controller.
- #1232 Docs: adding documentation to add an array element using overrides.
- #1231 Cleanup legacy context after delete cluster.
- #1229 Correct steps in ingress and service with coredns document.
- #1228 Upgrage ingress to 0.32.
- #1221 Chore: make cluster creation work with kind v0.7.0.
- #1218 chore: Cleanup travis config about dep
- #1216 fix: We shouldn't expect invidual error msg printed from std packages
- #1212 test: add test to validate the controller actions to keep the cluster data
- #1209 typo: changing 'federeate' for 'federate
- #1207 fix: enable command for crd resources
- #1200 Bump Helm version to 2.16.3
- #1196 feat: add custom kubefed metrics
- #1181 fix: namespaced condition for api resource
- #1129
An empty
spec.placement.clusters
field will now always result in no clusters being selected. Previously an emptyclusters
field could result inspec.placement.clusterSelector
being used. - #1107
status.observedGeneration
is now recorded by the sync controller for federated resources to provide an indication of whether the current state of a resource has been processed. - #1121 Update
kubefedctl federate
shorthand option for--enable-type
to-t
instead of-e
to avoid confusing error message when only one dash is accidentally used e.g.-enable-type
, resulting in a valid parsing of flags but erroneous use of the option. - #1184 Update dependencies to controller-runtime v0.5.0 and Kubernetes 1.17.3
- #1195 Use unstructured runtime.Object for more detailed reflector logging
- #1193 Serve controller default metrics
- #1192 Add pprof profiling support
- #1099 Updates to propagation status are now only made in response to propagation to member clusters or errors in propagation. Previously propagation status was updated every time a federated resource was reconciled which could result in unnecessary resource consumption.
- #1098 Propagated version is now only updated when changed.
- #1087
The ReplicaScheduling controller now correctly updates existing
overrides of
/spec/replicas
. Previously the controller was able to create and remove overrides for thereplicas
field but would fail to update them. - #1076
All
kubefedctl
commands now default--host-cluster-context
to the current context in log messages. - #1086
kubefedctl federate
now removes all metadata fields except labels from the template of federated resources created from a non-federated resource. Previouslymetadata.annotations
andmetadata.finalizers
were not removed which could result in propagation errors. - #1079 The spec field is now required in generated federated types. For types generated previously, a check has been added so that a missing spec field does not cause a nil pointer exception.
- #1058 KubeFedConfig spec.scope is now immutable.
- #1052
Support has been added for varying the
apiVersion
of target resources. This is intended to allow a federated type to manage more than one version of the target type across member clusters.apiVersion
can be set either in the template of a federated resource or via override. - #951 Propagation status for a namespaced federated resource whose containing namespace is not federated now indicates an unhealthy state.
- #1053 API group changed from kubefed.k8s.io to kubefed.io.
- #908 Adds admission webhook validations for KubeFedCluster API.
- #982 To ensure compatibility with controllers in member clusters, metadata.finalizers and metadata.annotations can no longer be set from the template of a federated resource and values for these fields are always retained. The addition of jsonpatch overrides ensures that it is still possible to add or remove entries from these collections.
- #1013 Add support for defaulting KubeFedConfigs using mutating admission webhook.
- #1038 Removed template validation schema from Federated API's to facilitate upgrade scenarios.
- #690 Extends
kubefedctl
by adding theorphaning-deletion
command, which allows toenable
ordisable
leaving managed resources, when their relevant federated resource is deleted. In addition, the command allows to check currentstatus
of the orphaning deletion mode. - #1044 If a target namespace
of
federate
and allorphaning-deletion
commands is not specified, use the namespace from the client kubeconfig context.
- #520 Adds support for jsonpath overrides.
- #965 Adds admission webhook support for namespace-scoped deployments.
- #941 Adds admission webhook validations for KubeFedConfig API.
- #909 Adds admission webhook validations for FederatedTypeConfig API.
- #887 Updates KubefedConfig API based on Kubernetes API conventions.
- #885 Updates FederatedTypeConfig API based on Kubernetes API conventions.
- #886 The ca bundle for a member cluster is now stored as an optional field of KubefedCluster since a ca bundle may not be required for all clusters and is not sensitive information that requires storage in a secret.
- #865
github repo is renamed to kubefed. Following changes are done:
- API group changed from federation.k8s.io to kubefed.k8s.io
- FederatedCluster API is renamed to KubefedCluster
- FederationConfig API is renamed to KubefedConfig
- golang imports changed to use vanity url sigs.k8s.io/kubefed
- docker image is renamed to quay.io/kubernetes-multicluster/kubefed
- helm chart is renamed to kubefed
- All role, rolebindings, service-account begining with federation- prefix renamed to kubefed-
- #875 Insecure member clusters are no longer supported due to KubefedCluster.SecretRef being made a required field.
- #869 The api endpoint of a member cluster is now stored in KubefedCluster instead of a cluster registry Cluster.
- #688 Cluster references in placement are now objects instead of strings to ensure extensibility.
- #832
kubefedctl federate
can take input from a file via--filename
option and stdin via--filename -
option. - #868
The default kubefed system namespace has been changed from
federation-system
tokube-federation-system
. Thekube-
prefix is reserved for system namespaces and including it avoids having the kubefed namespace conflict with a user namespace. - #740 Propagation status is now recorded for all federated resources.
- #844
kubefedctl federate
namespace with its content gets an option to skip API Resources via--skip-api-resources
.
- #722 - Removal of the FederatedTypeConfig for namespaces now disables all namespaced sync controllers. Additionally, the namespace FederatedTypeConfig must always exist prior to starting any namespaced sync controller.
- #612 - Label managed resources in member clusters and only watch resources so labeled to minimize the memory usage of the federated control plane.
- #721 - kubefed2 disable now deletes the FederatedTypeConfig rather than set propagationEnabled, waits for the sync controller to shut down, and optionally removes the federated type CRD.
- #825 - kubefed2 tool is renamed to kubefedctl.
- #741 -
Added conversion of a namespace and its contents to federated
equivalents via
kubefedctl federate ns <namespace> --contents
.
- #776 -
Switch to use
scope
instead oflimitedScope
to specify if it isNamespaced
orCluster
scoped federation deployment. - #797 - Cross-cluster service discovery now works for multi-zone clusters. There is an update to KubefedClusters and ServiceDNSRecord API types wherein the zone field is changed to zones.
- #720 -
kubefed2 enable
now succeeds if federation of the type is already enabled. - #738 -
Cleanup
kubefed2 enable
required arguments and remove unnecessary--registry-namespace
option fromkubefed2 <enable|disable>
. - #737 - Switch to use KubefedConfig resource rather than command line options for kubefed controller configuration management
- #549 - As a result of watching only labled resources, unlabled resources in unselected clusters will no longer be deleted.
- #663
kubefed2 federate
now supports the--enable-type
flag to optionally enable the giventype
for propagation.
- #652 - Switch to sourcing the template for a FederatedNamespace from a field rather than the containing namespace. This ensures uniformity in template handling across all federated types.
- #716 -
Upgrade kubebuilder version to v1.0.8
- Removed generated typed clients for federation apis from tree. Use generic client to operate on federation apis as shown here
- Helm based deployment method will be the only supported deployment method to install kubefed control plane.
- #622 -
Switched the sync controller to using a new finalizer
(
kubefed.k8s.io/sync-controller
instead offederation.kubernetes.io/delete-from-underlying-clusters
) and replaced the use of the kubeorphan
finalizer in favor of an annotation to avoid conflicting with the garbage collector. This change in finalizer usage represents a breaking change since resources reconciled by previous versions of the sync controller will have the old finalizer. The old finalizer would need to be manually removed from a resource for that resource to be garbage collected after deletion. - #698 -
Fix the generated CRD schema of scalable resources to define the
retainReplicas
of typeboolean
rather than the invalid typebool
. - #662 Federating a resource could now function without a federation API.
- #661 Accept group qualified type name for type in federate resource.
- #660
kubefed2 federate
has been updated to support output to yaml via-o yaml
. YAML output would still require a Kubernetes API endpoint to function.