diff --git a/.semaphore/semaphore-scheduled-builds.yml b/.semaphore/semaphore-scheduled-builds.yml index 4f007bd1120..4aa74a2eb21 100644 --- a/.semaphore/semaphore-scheduled-builds.yml +++ b/.semaphore/semaphore-scheduled-builds.yml @@ -268,7 +268,7 @@ blocks: - name: "Build" matrix: - env_var: ARCH - values: [ "arm64", "armv7", "ppc64le", "s390x" ] + values: [ "arm64", "ppc64le", "s390x" ] commands: # Only building the code, not the image here because the felix image is now only used for FV tests, which # only run on AMD64 at the moment. @@ -513,7 +513,7 @@ blocks: - name: "Build image" matrix: - env_var: ARCH - values: [ "arm64", "armv7", "ppc64le", "s390x" ] + values: [ "arm64", "ppc64le", "s390x" ] commands: - ../.semaphore/run-and-monitor image-$ARCH.log make image ARCH=$ARCH - name: "Build Windows archive" diff --git a/.semaphore/semaphore.yml b/.semaphore/semaphore.yml index 508c95f130c..c5495cd38b1 100644 --- a/.semaphore/semaphore.yml +++ b/.semaphore/semaphore.yml @@ -268,7 +268,7 @@ blocks: - name: "Build" matrix: - env_var: ARCH - values: [ "arm64", "armv7", "ppc64le", "s390x" ] + values: [ "arm64", "ppc64le", "s390x" ] commands: # Only building the code, not the image here because the felix image is now only used for FV tests, which # only run on AMD64 at the moment. @@ -513,7 +513,7 @@ blocks: - name: "Build image" matrix: - env_var: ARCH - values: [ "arm64", "armv7", "ppc64le", "s390x" ] + values: [ "arm64", "ppc64le", "s390x" ] commands: - ../.semaphore/run-and-monitor image-$ARCH.log make image ARCH=$ARCH - name: "Build Windows archive" diff --git a/.semaphore/semaphore.yml.tpl b/.semaphore/semaphore.yml.tpl index 9bc3bf44033..390c1940716 100644 --- a/.semaphore/semaphore.yml.tpl +++ b/.semaphore/semaphore.yml.tpl @@ -266,7 +266,7 @@ blocks: - name: "Build" matrix: - env_var: ARCH - values: [ "arm64", "armv7", "ppc64le", "s390x" ] + values: [ "arm64", "ppc64le", "s390x" ] commands: # Only building the code, not the image here because the felix image is now only used for FV tests, which # only run on AMD64 at the moment. @@ -511,7 +511,7 @@ blocks: - name: "Build image" matrix: - env_var: ARCH - values: [ "arm64", "armv7", "ppc64le", "s390x" ] + values: [ "arm64", "ppc64le", "s390x" ] commands: - ../.semaphore/run-and-monitor image-$ARCH.log make image ARCH=$ARCH - name: "Build Windows archive" diff --git a/api/pkg/client/clientset_generated/clientset/doc.go b/api/pkg/client/clientset_generated/clientset/doc.go deleted file mode 100644 index dc7de979c91..00000000000 --- a/api/pkg/client/clientset_generated/clientset/doc.go +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) 2023 Tigera, Inc. All rights reserved. - -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package clientset diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgpconfiguration.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgpconfiguration.go index b0089479cc9..daade228de9 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgpconfiguration.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgpconfiguration.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeBGPConfigurations struct { Fake *FakeProjectcalicoV3 } -var bgpconfigurationsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "bgpconfigurations"} +var bgpconfigurationsResource = v3.SchemeGroupVersion.WithResource("bgpconfigurations") -var bgpconfigurationsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "BGPConfiguration"} +var bgpconfigurationsKind = v3.SchemeGroupVersion.WithKind("BGPConfiguration") // Get takes name of the bGPConfiguration, and returns the corresponding bGPConfiguration object, and an error if there is any. func (c *FakeBGPConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.BGPConfiguration, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgpfilter.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgpfilter.go index 5312ae4113e..d93151bdb5c 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgpfilter.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgpfilter.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeBGPFilters struct { Fake *FakeProjectcalicoV3 } -var bgpfiltersResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "bgpfilters"} +var bgpfiltersResource = v3.SchemeGroupVersion.WithResource("bgpfilters") -var bgpfiltersKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "BGPFilter"} +var bgpfiltersKind = v3.SchemeGroupVersion.WithKind("BGPFilter") // Get takes name of the bGPFilter, and returns the corresponding bGPFilter object, and an error if there is any. func (c *FakeBGPFilters) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.BGPFilter, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgppeer.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgppeer.go index 665bda5b4b1..ded883a7c9e 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgppeer.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_bgppeer.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeBGPPeers struct { Fake *FakeProjectcalicoV3 } -var bgppeersResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "bgppeers"} +var bgppeersResource = v3.SchemeGroupVersion.WithResource("bgppeers") -var bgppeersKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "BGPPeer"} +var bgppeersKind = v3.SchemeGroupVersion.WithKind("BGPPeer") // Get takes name of the bGPPeer, and returns the corresponding bGPPeer object, and an error if there is any. func (c *FakeBGPPeers) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.BGPPeer, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_blockaffinity.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_blockaffinity.go index 5f9ef12ef29..f33dc274eec 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_blockaffinity.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_blockaffinity.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeBlockAffinities struct { Fake *FakeProjectcalicoV3 } -var blockaffinitiesResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "blockaffinities"} +var blockaffinitiesResource = v3.SchemeGroupVersion.WithResource("blockaffinities") -var blockaffinitiesKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "BlockAffinity"} +var blockaffinitiesKind = v3.SchemeGroupVersion.WithKind("BlockAffinity") // Get takes name of the blockAffinity, and returns the corresponding blockAffinity object, and an error if there is any. func (c *FakeBlockAffinities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.BlockAffinity, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_caliconodestatus.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_caliconodestatus.go index 8cd65109e73..866fa0f4c02 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_caliconodestatus.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_caliconodestatus.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeCalicoNodeStatuses struct { Fake *FakeProjectcalicoV3 } -var caliconodestatusesResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "caliconodestatuses"} +var caliconodestatusesResource = v3.SchemeGroupVersion.WithResource("caliconodestatuses") -var caliconodestatusesKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "CalicoNodeStatus"} +var caliconodestatusesKind = v3.SchemeGroupVersion.WithKind("CalicoNodeStatus") // Get takes name of the calicoNodeStatus, and returns the corresponding calicoNodeStatus object, and an error if there is any. func (c *FakeCalicoNodeStatuses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.CalicoNodeStatus, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_clusterinformation.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_clusterinformation.go index 198fd70430e..b722a1d7280 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_clusterinformation.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_clusterinformation.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeClusterInformations struct { Fake *FakeProjectcalicoV3 } -var clusterinformationsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "clusterinformations"} +var clusterinformationsResource = v3.SchemeGroupVersion.WithResource("clusterinformations") -var clusterinformationsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "ClusterInformation"} +var clusterinformationsKind = v3.SchemeGroupVersion.WithKind("ClusterInformation") // Get takes name of the clusterInformation, and returns the corresponding clusterInformation object, and an error if there is any. func (c *FakeClusterInformations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.ClusterInformation, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_felixconfiguration.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_felixconfiguration.go index 67f8384d079..1846ad3e4aa 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_felixconfiguration.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_felixconfiguration.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeFelixConfigurations struct { Fake *FakeProjectcalicoV3 } -var felixconfigurationsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "felixconfigurations"} +var felixconfigurationsResource = v3.SchemeGroupVersion.WithResource("felixconfigurations") -var felixconfigurationsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "FelixConfiguration"} +var felixconfigurationsKind = v3.SchemeGroupVersion.WithKind("FelixConfiguration") // Get takes name of the felixConfiguration, and returns the corresponding felixConfiguration object, and an error if there is any. func (c *FakeFelixConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.FelixConfiguration, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_globalnetworkpolicy.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_globalnetworkpolicy.go index d000ece8fd2..c111b81b5f0 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_globalnetworkpolicy.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_globalnetworkpolicy.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeGlobalNetworkPolicies struct { Fake *FakeProjectcalicoV3 } -var globalnetworkpoliciesResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "globalnetworkpolicies"} +var globalnetworkpoliciesResource = v3.SchemeGroupVersion.WithResource("globalnetworkpolicies") -var globalnetworkpoliciesKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "GlobalNetworkPolicy"} +var globalnetworkpoliciesKind = v3.SchemeGroupVersion.WithKind("GlobalNetworkPolicy") // Get takes name of the globalNetworkPolicy, and returns the corresponding globalNetworkPolicy object, and an error if there is any. func (c *FakeGlobalNetworkPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.GlobalNetworkPolicy, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_globalnetworkset.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_globalnetworkset.go index 8a83ff15d41..d2818b9e701 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_globalnetworkset.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_globalnetworkset.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeGlobalNetworkSets struct { Fake *FakeProjectcalicoV3 } -var globalnetworksetsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "globalnetworksets"} +var globalnetworksetsResource = v3.SchemeGroupVersion.WithResource("globalnetworksets") -var globalnetworksetsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "GlobalNetworkSet"} +var globalnetworksetsKind = v3.SchemeGroupVersion.WithKind("GlobalNetworkSet") // Get takes name of the globalNetworkSet, and returns the corresponding globalNetworkSet object, and an error if there is any. func (c *FakeGlobalNetworkSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.GlobalNetworkSet, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_hostendpoint.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_hostendpoint.go index b28fe800bcc..aeb586f8b95 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_hostendpoint.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_hostendpoint.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeHostEndpoints struct { Fake *FakeProjectcalicoV3 } -var hostendpointsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "hostendpoints"} +var hostendpointsResource = v3.SchemeGroupVersion.WithResource("hostendpoints") -var hostendpointsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "HostEndpoint"} +var hostendpointsKind = v3.SchemeGroupVersion.WithKind("HostEndpoint") // Get takes name of the hostEndpoint, and returns the corresponding hostEndpoint object, and an error if there is any. func (c *FakeHostEndpoints) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.HostEndpoint, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ipamconfiguration.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ipamconfiguration.go index 4e98e8cd1b8..6c77872ad7d 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ipamconfiguration.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ipamconfiguration.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeIPAMConfigurations struct { Fake *FakeProjectcalicoV3 } -var ipamconfigurationsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "ipamconfigurations"} +var ipamconfigurationsResource = v3.SchemeGroupVersion.WithResource("ipamconfigurations") -var ipamconfigurationsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "IPAMConfiguration"} +var ipamconfigurationsKind = v3.SchemeGroupVersion.WithKind("IPAMConfiguration") // Get takes name of the iPAMConfiguration, and returns the corresponding iPAMConfiguration object, and an error if there is any. func (c *FakeIPAMConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.IPAMConfiguration, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ippool.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ippool.go index 78986fbe1bf..4a20d3d5062 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ippool.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ippool.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeIPPools struct { Fake *FakeProjectcalicoV3 } -var ippoolsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "ippools"} +var ippoolsResource = v3.SchemeGroupVersion.WithResource("ippools") -var ippoolsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "IPPool"} +var ippoolsKind = v3.SchemeGroupVersion.WithKind("IPPool") // Get takes name of the iPPool, and returns the corresponding iPPool object, and an error if there is any. func (c *FakeIPPools) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.IPPool, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ipreservation.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ipreservation.go index 971db29408d..0babe379153 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ipreservation.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_ipreservation.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeIPReservations struct { Fake *FakeProjectcalicoV3 } -var ipreservationsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "ipreservations"} +var ipreservationsResource = v3.SchemeGroupVersion.WithResource("ipreservations") -var ipreservationsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "IPReservation"} +var ipreservationsKind = v3.SchemeGroupVersion.WithKind("IPReservation") // Get takes name of the iPReservation, and returns the corresponding iPReservation object, and an error if there is any. func (c *FakeIPReservations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.IPReservation, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_kubecontrollersconfiguration.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_kubecontrollersconfiguration.go index f1cc55dfcff..c08df189faa 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_kubecontrollersconfiguration.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_kubecontrollersconfiguration.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeKubeControllersConfigurations struct { Fake *FakeProjectcalicoV3 } -var kubecontrollersconfigurationsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "kubecontrollersconfigurations"} +var kubecontrollersconfigurationsResource = v3.SchemeGroupVersion.WithResource("kubecontrollersconfigurations") -var kubecontrollersconfigurationsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "KubeControllersConfiguration"} +var kubecontrollersconfigurationsKind = v3.SchemeGroupVersion.WithKind("KubeControllersConfiguration") // Get takes name of the kubeControllersConfiguration, and returns the corresponding kubeControllersConfiguration object, and an error if there is any. func (c *FakeKubeControllersConfigurations) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.KubeControllersConfiguration, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_networkpolicy.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_networkpolicy.go index c2efa8337b7..5c7c4fc1681 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_networkpolicy.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_networkpolicy.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -22,9 +21,9 @@ type FakeNetworkPolicies struct { ns string } -var networkpoliciesResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "networkpolicies"} +var networkpoliciesResource = v3.SchemeGroupVersion.WithResource("networkpolicies") -var networkpoliciesKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "NetworkPolicy"} +var networkpoliciesKind = v3.SchemeGroupVersion.WithKind("NetworkPolicy") // Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any. func (c *FakeNetworkPolicies) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.NetworkPolicy, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_networkset.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_networkset.go index 477f6d8f574..f80532a7e04 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_networkset.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_networkset.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -22,9 +21,9 @@ type FakeNetworkSets struct { ns string } -var networksetsResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "networksets"} +var networksetsResource = v3.SchemeGroupVersion.WithResource("networksets") -var networksetsKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "NetworkSet"} +var networksetsKind = v3.SchemeGroupVersion.WithKind("NetworkSet") // Get takes name of the networkSet, and returns the corresponding networkSet object, and an error if there is any. func (c *FakeNetworkSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.NetworkSet, err error) { diff --git a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_profile.go b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_profile.go index 1809bb07a80..fce0363054f 100644 --- a/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_profile.go +++ b/api/pkg/client/clientset_generated/clientset/typed/projectcalico/v3/fake/fake_profile.go @@ -10,7 +10,6 @@ import ( v3 "github.com/projectcalico/api/pkg/apis/projectcalico/v3" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -21,9 +20,9 @@ type FakeProfiles struct { Fake *FakeProjectcalicoV3 } -var profilesResource = schema.GroupVersionResource{Group: "projectcalico.org", Version: "v3", Resource: "profiles"} +var profilesResource = v3.SchemeGroupVersion.WithResource("profiles") -var profilesKind = schema.GroupVersionKind{Group: "projectcalico.org", Version: "v3", Kind: "Profile"} +var profilesKind = v3.SchemeGroupVersion.WithKind("Profile") // Get takes name of the profile, and returns the corresponding profile object, and an error if there is any. func (c *FakeProfiles) Get(ctx context.Context, name string, options v1.GetOptions) (result *v3.Profile, err error) { diff --git a/api/pkg/openapi/openapi_generated.go b/api/pkg/openapi/openapi_generated.go index f8124ca3acb..04b0d4fe332 100644 --- a/api/pkg/openapi/openapi_generated.go +++ b/api/pkg/openapi/openapi_generated.go @@ -5539,9 +5539,10 @@ func schema_k8sio_api_core_v1_AzureDiskVolumeSource(ref common.ReferenceCallback }, "cachingMode": { SchemaProps: spec.SchemaProps{ - Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.", + Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.\n\nPossible enum values:\n - `\"None\"`\n - `\"ReadOnly\"`\n - `\"ReadWrite\"`", Type: []string{"string"}, Format: "", + Enum: []interface{}{"None", "ReadOnly", "ReadWrite"}, }, }, "fsType": { @@ -5560,9 +5561,10 @@ func schema_k8sio_api_core_v1_AzureDiskVolumeSource(ref common.ReferenceCallback }, "kind": { SchemaProps: spec.SchemaProps{ - Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", + Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\n\nPossible enum values:\n - `\"Dedicated\"`\n - `\"Managed\"`\n - `\"Shared\"`", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Dedicated", "Managed", "Shared"}, }, }, }, @@ -6866,14 +6868,16 @@ func schema_k8sio_api_core_v1_Container(ref common.ReferenceCallback) common.Ope Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"FallbackToLogsOnError", "File"}}, + Enum: []interface{}{"FallbackToLogsOnError", "File"}, + }, }, "imagePullPolicy": { SchemaProps: spec.SchemaProps{ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Always", "IfNotPresent", "Never"}}, + Enum: []interface{}{"Always", "IfNotPresent", "Never"}, + }, }, "securityContext": { SchemaProps: spec.SchemaProps{ @@ -6981,7 +6985,8 @@ func schema_k8sio_api_core_v1_ContainerPort(ref common.ReferenceCallback) common Default: "TCP", Type: []string{"string"}, Format: "", - Enum: []interface{}{"SCTP", "TCP", "UDP"}}, + Enum: []interface{}{"SCTP", "TCP", "UDP"}, + }, }, "hostIP": { SchemaProps: spec.SchemaProps{ @@ -7514,7 +7519,8 @@ func schema_k8sio_api_core_v1_EndpointPort(ref common.ReferenceCallback) common. Description: "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"SCTP", "TCP", "UDP"}}, + Enum: []interface{}{"SCTP", "TCP", "UDP"}, + }, }, "appProtocol": { SchemaProps: spec.SchemaProps{ @@ -8023,14 +8029,16 @@ func schema_k8sio_api_core_v1_EphemeralContainer(ref common.ReferenceCallback) c Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"FallbackToLogsOnError", "File"}}, + Enum: []interface{}{"FallbackToLogsOnError", "File"}, + }, }, "imagePullPolicy": { SchemaProps: spec.SchemaProps{ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Always", "IfNotPresent", "Never"}}, + Enum: []interface{}{"Always", "IfNotPresent", "Never"}, + }, }, "securityContext": { SchemaProps: spec.SchemaProps{ @@ -8295,14 +8303,16 @@ func schema_k8sio_api_core_v1_EphemeralContainerCommon(ref common.ReferenceCallb Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"FallbackToLogsOnError", "File"}}, + Enum: []interface{}{"FallbackToLogsOnError", "File"}, + }, }, "imagePullPolicy": { SchemaProps: spec.SchemaProps{ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Always", "IfNotPresent", "Never"}}, + Enum: []interface{}{"Always", "IfNotPresent", "Never"}, + }, }, "securityContext": { SchemaProps: spec.SchemaProps{ @@ -9064,7 +9074,8 @@ func schema_k8sio_api_core_v1_HTTPGetAction(ref common.ReferenceCallback) common Description: "Scheme to use for connecting to the host. Defaults to HTTP.\n\nPossible enum values:\n - `\"HTTP\"` means that the scheme used will be http://\n - `\"HTTPS\"` means that the scheme used will be https://", Type: []string{"string"}, Format: "", - Enum: []interface{}{"HTTP", "HTTPS"}}, + Enum: []interface{}{"HTTP", "HTTPS"}, + }, }, "httpHeaders": { SchemaProps: spec.SchemaProps{ @@ -9171,9 +9182,10 @@ func schema_k8sio_api_core_v1_HostPathVolumeSource(ref common.ReferenceCallback) }, "type": { SchemaProps: spec.SchemaProps{ - Description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", + Description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\nPossible enum values:\n - `\"\"` For backwards compatible, leave it empty if unset\n - `\"BlockDevice\"` A block device must exist at the given path\n - `\"CharDevice\"` A character device must exist at the given path\n - `\"Directory\"` A directory must exist at the given path\n - `\"DirectoryOrCreate\"` If nothing exists at the given path, an empty directory will be created there as needed with file mode 0755, having the same group and ownership with Kubelet.\n - `\"File\"` A file must exist at the given path\n - `\"FileOrCreate\"` If nothing exists at the given path, an empty file will be created there as needed with file mode 0644, having the same group and ownership with Kubelet.\n - `\"Socket\"` A UNIX socket must exist at the given path", Type: []string{"string"}, Format: "", + Enum: []interface{}{"", "BlockDevice", "CharDevice", "Directory", "DirectoryOrCreate", "File", "FileOrCreate", "Socket"}, }, }, }, @@ -10119,7 +10131,8 @@ func schema_k8sio_api_core_v1_NamespaceStatus(ref common.ReferenceCallback) comm Description: "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n\nPossible enum values:\n - `\"Active\"` means the namespace is available for use in the system\n - `\"Terminating\"` means the namespace is undergoing graceful termination", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Active", "Terminating"}}, + Enum: []interface{}{"Active", "Terminating"}, + }, }, "conditions": { VendorExtensible: spec.VendorExtensible{ @@ -10579,7 +10592,8 @@ func schema_k8sio_api_core_v1_NodeSelectorRequirement(ref common.ReferenceCallba Default: "", Type: []string{"string"}, Format: "", - Enum: []interface{}{"DoesNotExist", "Exists", "Gt", "In", "Lt", "NotIn"}}, + Enum: []interface{}{"DoesNotExist", "Exists", "Gt", "In", "Lt", "NotIn"}, + }, }, "values": { SchemaProps: spec.SchemaProps{ @@ -10776,7 +10790,8 @@ func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.Op Description: "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.\n\nPossible enum values:\n - `\"Pending\"` means the node has been created/added by the system, but not configured.\n - `\"Running\"` means the node has been configured and has Kubernetes components running.\n - `\"Terminated\"` means the node has been removed from the cluster.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Pending", "Running", "Terminated"}}, + Enum: []interface{}{"Pending", "Running", "Terminated"}, + }, }, "conditions": { VendorExtensible: spec.VendorExtensible{ @@ -11344,9 +11359,10 @@ func schema_k8sio_api_core_v1_PersistentVolumeClaimSpec(ref common.ReferenceCall }, "volumeMode": { SchemaProps: spec.SchemaProps{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", + Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\n\nPossible enum values:\n - `\"Block\"` means the volume will not be formatted with a filesystem and will remain a raw block device.\n - `\"Filesystem\"` means the volume will be or is formatted with a filesystem.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Block", "Filesystem"}, }, }, "dataSource": { @@ -11381,7 +11397,8 @@ func schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref common.ReferenceCa Description: "phase represents the current phase of PersistentVolumeClaim.\n\nPossible enum values:\n - `\"Bound\"` used for PersistentVolumeClaims that are bound\n - `\"Lost\"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.\n - `\"Pending\"` used for PersistentVolumeClaims that are not yet bound", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Bound", "Lost", "Pending"}}, + Enum: []interface{}{"Bound", "Lost", "Pending"}, + }, }, "accessModes": { SchemaProps: spec.SchemaProps{ @@ -11450,9 +11467,10 @@ func schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref common.ReferenceCa }, "resizeStatus": { SchemaProps: spec.SchemaProps{ - Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.", + Description: "resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n\nPossible enum values:\n - `\"\"` When expansion is complete, the empty string is set by resize controller or kubelet.\n - `\"ControllerExpansionFailed\"` State set when expansion has failed in resize controller with a terminal error. Transient errors such as timeout should not set this status and should leave ResizeStatus unmodified, so as resize controller can resume the volume expansion.\n - `\"ControllerExpansionInProgress\"` State set when resize controller starts expanding the volume in control-plane\n - `\"NodeExpansionFailed\"` State set when expansion has failed in kubelet with a terminal error. Transient errors don't set NodeExpansionFailed.\n - `\"NodeExpansionInProgress\"` State set when kubelet starts expanding the volume.\n - `\"NodeExpansionPending\"` State set when resize controller has finished expanding the volume but further expansion is needed on the node.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"", "ControllerExpansionFailed", "ControllerExpansionInProgress", "NodeExpansionFailed", "NodeExpansionInProgress", "NodeExpansionPending"}, }, }, }, @@ -11905,7 +11923,8 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback) Description: "persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\n\nPossible enum values:\n - `\"Delete\"` means the volume will be deleted from Kubernetes on release from its claim. The volume plugin must support Deletion.\n - `\"Recycle\"` means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim. The volume plugin must support Recycling.\n - `\"Retain\"` means the volume will be left in its current phase (Released) for manual reclamation by the administrator. The default policy is Retain.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Delete", "Recycle", "Retain"}}, + Enum: []interface{}{"Delete", "Recycle", "Retain"}, + }, }, "storageClassName": { SchemaProps: spec.SchemaProps{ @@ -11931,9 +11950,10 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback) }, "volumeMode": { SchemaProps: spec.SchemaProps{ - Description: "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", + Description: "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.\n\nPossible enum values:\n - `\"Block\"` means the volume will not be formatted with a filesystem and will remain a raw block device.\n - `\"Filesystem\"` means the volume will be or is formatted with a filesystem.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Block", "Filesystem"}, }, }, "nodeAffinity": { @@ -11962,7 +11982,8 @@ func schema_k8sio_api_core_v1_PersistentVolumeStatus(ref common.ReferenceCallbac Description: "phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\n\nPossible enum values:\n - `\"Available\"` used for PersistentVolumes that are not yet bound Available volumes are held by the binder and matched to PersistentVolumeClaims\n - `\"Bound\"` used for PersistentVolumes that are bound\n - `\"Failed\"` used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim\n - `\"Pending\"` used for PersistentVolumes that are not available\n - `\"Released\"` used for PersistentVolumes where the bound PersistentVolumeClaim was deleted released volumes must be recycled before becoming available again this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Available", "Bound", "Failed", "Pending", "Released"}}, + Enum: []interface{}{"Available", "Bound", "Failed", "Pending", "Released"}, + }, }, "message": { SchemaProps: spec.SchemaProps{ @@ -12898,9 +12919,10 @@ func schema_k8sio_api_core_v1_PodSecurityContext(ref common.ReferenceCallback) c }, "fsGroupChangePolicy": { SchemaProps: spec.SchemaProps{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.", + Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.\n\nPossible enum values:\n - `\"Always\"` indicates that volume's ownership and permissions should always be changed whenever volume is mounted inside a Pod. This the default behavior.\n - `\"OnRootMismatch\"` indicates that volume's ownership and permissions will be changed only when permission and ownership of root directory does not match with expected permissions on the volume. This can help shorten the time it takes to change ownership and permissions of a volume.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Always", "OnRootMismatch"}, }, }, "seccompProfile": { @@ -13030,7 +13052,8 @@ func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenA Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\n\nPossible enum values:\n - `\"Always\"`\n - `\"Never\"`\n - `\"OnFailure\"`", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Always", "Never", "OnFailure"}}, + Enum: []interface{}{"Always", "Never", "OnFailure"}, + }, }, "terminationGracePeriodSeconds": { SchemaProps: spec.SchemaProps{ @@ -13051,7 +13074,8 @@ func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenA Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\n\nPossible enum values:\n - `\"ClusterFirst\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\n - `\"ClusterFirstWithHostNet\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\n - `\"Default\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\n - `\"None\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"ClusterFirst", "ClusterFirstWithHostNet", "Default", "None"}}, + Enum: []interface{}{"ClusterFirst", "ClusterFirstWithHostNet", "Default", "None"}, + }, }, "nodeSelector": { VendorExtensible: spec.VendorExtensible{ @@ -13267,9 +13291,10 @@ func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenA }, "preemptionPolicy": { SchemaProps: spec.SchemaProps{ - Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.", + Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\n\nPossible enum values:\n - `\"Never\"` means that pod never preempts other pods with lower priority.\n - `\"PreemptLowerPriority\"` means that pod can preempt other pods with lower priority.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Never", "PreemptLowerPriority"}, }, }, "overhead": { @@ -13401,7 +13426,8 @@ func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.Ope Description: "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\n\nPossible enum values:\n - `\"Failed\"` means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).\n - `\"Pending\"` means the pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.\n - `\"Running\"` means the pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.\n - `\"Succeeded\"` means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.\n - `\"Unknown\"` means that for some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Failed", "Pending", "Running", "Succeeded", "Unknown"}}, + Enum: []interface{}{"Failed", "Pending", "Running", "Succeeded", "Unknown"}, + }, }, "conditions": { VendorExtensible: spec.VendorExtensible{ @@ -13517,7 +13543,8 @@ func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.Ope Description: "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\n\nPossible enum values:\n - `\"BestEffort\"` is the BestEffort qos class.\n - `\"Burstable\"` is the Burstable qos class.\n - `\"Guaranteed\"` is the Guaranteed qos class.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"BestEffort", "Burstable", "Guaranteed"}}, + Enum: []interface{}{"BestEffort", "Burstable", "Guaranteed"}, + }, }, "ephemeralContainerStatuses": { SchemaProps: spec.SchemaProps{ @@ -13734,7 +13761,8 @@ func schema_k8sio_api_core_v1_PortStatus(ref common.ReferenceCallback) common.Op Default: "", Type: []string{"string"}, Format: "", - Enum: []interface{}{"SCTP", "TCP", "UDP"}}, + Enum: []interface{}{"SCTP", "TCP", "UDP"}, + }, }, "error": { SchemaProps: spec.SchemaProps{ @@ -15160,7 +15188,8 @@ func schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref common.Refer Default: "", Type: []string{"string"}, Format: "", - Enum: []interface{}{"BestEffort", "CrossNamespacePodAffinity", "NotBestEffort", "NotTerminating", "PriorityClass", "Terminating"}}, + Enum: []interface{}{"BestEffort", "CrossNamespacePodAffinity", "NotBestEffort", "NotTerminating", "PriorityClass", "Terminating"}, + }, }, "operator": { SchemaProps: spec.SchemaProps{ @@ -15168,7 +15197,8 @@ func schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref common.Refer Default: "", Type: []string{"string"}, Format: "", - Enum: []interface{}{"DoesNotExist", "Exists", "In", "NotIn"}}, + Enum: []interface{}{"DoesNotExist", "Exists", "In", "NotIn"}, + }, }, "values": { SchemaProps: spec.SchemaProps{ @@ -15205,7 +15235,8 @@ func schema_k8sio_api_core_v1_SeccompProfile(ref common.ReferenceCallback) commo Default: "", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Localhost", "RuntimeDefault", "Unconfined"}}, + Enum: []interface{}{"Localhost", "RuntimeDefault", "Unconfined"}, + }, }, "localhostProfile": { SchemaProps: spec.SchemaProps{ @@ -15627,9 +15658,10 @@ func schema_k8sio_api_core_v1_SecurityContext(ref common.ReferenceCallback) comm }, "procMount": { SchemaProps: spec.SchemaProps{ - Description: "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.", + Description: "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\n\nPossible enum values:\n - `\"Default\"` uses the container runtime defaults for readonly and masked paths for /proc. Most container runtimes mask certain paths in /proc to avoid accidental security exposure of special devices or information.\n - `\"Unmasked\"` bypasses the default masking behavior of the container runtime and ensures the newly created /proc the container stays in tact with no modifications.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Default", "Unmasked"}, }, }, "seccompProfile": { @@ -15967,7 +15999,8 @@ func schema_k8sio_api_core_v1_ServicePort(ref common.ReferenceCallback) common.O Default: "TCP", Type: []string{"string"}, Format: "", - Enum: []interface{}{"SCTP", "TCP", "UDP"}}, + Enum: []interface{}{"SCTP", "TCP", "UDP"}, + }, }, "appProtocol": { SchemaProps: spec.SchemaProps{ @@ -16126,7 +16159,8 @@ func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.O Description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n\nPossible enum values:\n - `\"ClusterIP\"` means a service will only be accessible inside the cluster, via the cluster IP.\n - `\"ExternalName\"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.\n - `\"LoadBalancer\"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.\n - `\"NodePort\"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"ClusterIP", "ExternalName", "LoadBalancer", "NodePort"}}, + Enum: []interface{}{"ClusterIP", "ExternalName", "LoadBalancer", "NodePort"}, + }, }, "externalIPs": { SchemaProps: spec.SchemaProps{ @@ -16148,7 +16182,8 @@ func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.O Description: "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\nPossible enum values:\n - `\"ClientIP\"` is the Client IP based.\n - `\"None\"` - no session affinity.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"ClientIP", "None"}}, + Enum: []interface{}{"ClientIP", "None"}, + }, }, "loadBalancerIP": { SchemaProps: spec.SchemaProps{ @@ -16184,7 +16219,8 @@ func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.O Description: "externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.\n\nPossible enum values:\n - `\"Cluster\"`\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"`\n - `\"Local\"` preserves the source IP of the traffic by routing only to endpoints on the same node as the traffic was received on (dropping the traffic if there are no local endpoints).", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Cluster", "Cluster", "Local", "Local"}}, + Enum: []interface{}{"Cluster", "Cluster", "Local", "Local"}, + }, }, "healthCheckNodePort": { SchemaProps: spec.SchemaProps{ @@ -16228,9 +16264,10 @@ func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.O }, "ipFamilyPolicy": { SchemaProps: spec.SchemaProps{ - Description: "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.", + Description: "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.\n\nPossible enum values:\n - `\"PreferDualStack\"` indicates that this service prefers dual-stack when the cluster is configured for dual-stack. If the cluster is not configured for dual-stack the service will be assigned a single IPFamily. If the IPFamily is not set in service.spec.ipFamilies then the service will be assigned the default IPFamily configured on the cluster\n - `\"RequireDualStack\"` indicates that this service requires dual-stack. Using IPFamilyPolicyRequireDualStack on a single stack cluster will result in validation errors. The IPFamilies (and their order) assigned to this service is based on service.spec.ipFamilies. If service.spec.ipFamilies was not provided then it will be assigned according to how they are configured on the cluster. If service.spec.ipFamilies has only one entry then the alternative IPFamily will be added by apiserver\n - `\"SingleStack\"` indicates that this service is required to have a single IPFamily. The IPFamily assigned is based on the default IPFamily used by the cluster or as identified by service.spec.ipFamilies field", Type: []string{"string"}, Format: "", + Enum: []interface{}{"PreferDualStack", "RequireDualStack", "SingleStack"}, }, }, "allocateLoadBalancerNodePorts": { @@ -16249,9 +16286,10 @@ func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.O }, "internalTrafficPolicy": { SchemaProps: spec.SchemaProps{ - Description: "InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).", + Description: "InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).\n\nPossible enum values:\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"` routes traffic only to endpoints on the same node as the client pod (dropping the traffic if there are no local endpoints).", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Cluster", "Local"}, }, }, }, @@ -16515,7 +16553,8 @@ func schema_k8sio_api_core_v1_Taint(ref common.ReferenceCallback) common.OpenAPI Default: "", Type: []string{"string"}, Format: "", - Enum: []interface{}{"NoExecute", "NoSchedule", "PreferNoSchedule"}}, + Enum: []interface{}{"NoExecute", "NoSchedule", "PreferNoSchedule"}, + }, }, "timeAdded": { SchemaProps: spec.SchemaProps{ @@ -16551,7 +16590,8 @@ func schema_k8sio_api_core_v1_Toleration(ref common.ReferenceCallback) common.Op Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\n\nPossible enum values:\n - `\"Equal\"`\n - `\"Exists\"`", Type: []string{"string"}, Format: "", - Enum: []interface{}{"Equal", "Exists"}}, + Enum: []interface{}{"Equal", "Exists"}, + }, }, "value": { SchemaProps: spec.SchemaProps{ @@ -16565,7 +16605,8 @@ func schema_k8sio_api_core_v1_Toleration(ref common.ReferenceCallback) common.Op Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n\nPossible enum values:\n - `\"NoExecute\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\n - `\"NoSchedule\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\n - `\"PreferNoSchedule\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.", Type: []string{"string"}, Format: "", - Enum: []interface{}{"NoExecute", "NoSchedule", "PreferNoSchedule"}}, + Enum: []interface{}{"NoExecute", "NoSchedule", "PreferNoSchedule"}, + }, }, "tolerationSeconds": { SchemaProps: spec.SchemaProps{ @@ -16680,7 +16721,8 @@ func schema_k8sio_api_core_v1_TopologySpreadConstraint(ref common.ReferenceCallb Default: "", Type: []string{"string"}, Format: "", - Enum: []interface{}{"DoNotSchedule", "ScheduleAnyway"}}, + Enum: []interface{}{"DoNotSchedule", "ScheduleAnyway"}, + }, }, "labelSelector": { SchemaProps: spec.SchemaProps{ @@ -16697,16 +16739,18 @@ func schema_k8sio_api_core_v1_TopologySpreadConstraint(ref common.ReferenceCallb }, "nodeAffinityPolicy": { SchemaProps: spec.SchemaProps{ - Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\nIf this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", + Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\nIf this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Honor", "Ignore"}, }, }, "nodeTaintsPolicy": { SchemaProps: spec.SchemaProps{ - Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\n\nIf this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.", + Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\n\nIf this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Honor", "Ignore"}, }, }, "matchLabelKeys": { @@ -17090,9 +17134,10 @@ func schema_k8sio_api_core_v1_VolumeMount(ref common.ReferenceCallback) common.O }, "mountPropagation": { SchemaProps: spec.SchemaProps{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.\n\nPossible enum values:\n - `\"Bidirectional\"` means that the volume in a container will receive new mounts from the host or other containers, and its own mounts will be propagated from the container to the host or other containers. Note that this mode is recursively applied to all mounts in the volume (\"rshared\" in Linux terminology).\n - `\"HostToContainer\"` means that the volume in a container will receive new mounts from the host or other containers, but filesystems mounted inside the container won't be propagated to the host or other containers. Note that this mode is recursively applied to all mounts in the volume (\"rslave\" in Linux terminology).\n - `\"None\"` means that the volume in a container will not receive new mounts from the host or other containers, and filesystems mounted inside the container won't be propagated to the host or other containers. Note that this mode corresponds to \"private\" in Linux terminology.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Bidirectional", "HostToContainer", "None"}, }, }, "subPathExpr": { @@ -17489,9 +17534,10 @@ func schema_k8sio_api_networking_v1_HTTPIngressPath(ref common.ReferenceCallback }, "pathType": { SchemaProps: spec.SchemaProps{ - Description: "pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n done on a path element by element basis. A path element refers is the\n list of labels in the path split by the '/' separator. A request is a\n match for path p if every p is an element-wise prefix of p of the\n request path. Note that if the last element of the path is a substring\n of the last element in request path, it is not a match (e.g. /foo/bar\n matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n the IngressClass. Implementations can treat this as a separate PathType\n or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types.", + Description: "pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n done on a path element by element basis. A path element refers is the\n list of labels in the path split by the '/' separator. A request is a\n match for path p if every p is an element-wise prefix of p of the\n request path. Note that if the last element of the path is a substring\n of the last element in request path, it is not a match (e.g. /foo/bar\n matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n the IngressClass. Implementations can treat this as a separate PathType\n or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types.\n\nPossible enum values:\n - `\"Exact\"` matches the URL path exactly and with case sensitivity.\n - `\"ImplementationSpecific\"` matching is up to the IngressClass. Implementations can treat this as a separate PathType or treat it identically to Prefix or Exact path types.\n - `\"Prefix\"` matches based on a URL path prefix split by '/'. Matching is case sensitive and done on a path element by element basis. A path element refers to the list of labels in the path split by the '/' separator. A request is a match for path p if every p is an element-wise prefix of p of the request path. Note that if the last element of the path is a substring of the last element in request path, it is not a match (e.g. /foo/bar matches /foo/bar/baz, but does not match /foo/barbaz). If multiple matching paths exist in an Ingress spec, the longest matching path is given priority. Examples: - /foo/bar does not match requests to /foo/barbaz - /foo/bar matches request to /foo/bar and /foo/bar/baz - /foo and /foo/ both match requests to /foo and /foo/. If both paths are present in an Ingress spec, the longest matching path (/foo/) is given priority.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"Exact", "ImplementationSpecific", "Prefix"}, }, }, "backend": { @@ -17981,7 +18027,8 @@ func schema_k8sio_api_networking_v1_IngressPortStatus(ref common.ReferenceCallba Default: "", Type: []string{"string"}, Format: "", - Enum: []interface{}{"SCTP", "TCP", "UDP"}}, + Enum: []interface{}{"SCTP", "TCP", "UDP"}, + }, }, "error": { SchemaProps: spec.SchemaProps{ @@ -18432,9 +18479,10 @@ func schema_k8sio_api_networking_v1_NetworkPolicyPort(ref common.ReferenceCallba Properties: map[string]spec.Schema{ "protocol": { SchemaProps: spec.SchemaProps{ - Description: "protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", + Description: "protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.", Type: []string{"string"}, Format: "", + Enum: []interface{}{"SCTP", "TCP", "UDP"}, }, }, "port": { diff --git a/app-policy/Makefile b/app-policy/Makefile index 7b9acb2436a..030d2bc8c04 100644 --- a/app-policy/Makefile +++ b/app-policy/Makefile @@ -4,12 +4,6 @@ PACKAGE_NAME = github.com/projectcalico/calico/app-policy ############################################################################### -# Figure out the users UID/GID. These are needed to run docker containers -# as the current user and ensure that files built inside containers are -# owned by the current user. -LOCAL_USER_ID:=$(shell id -u) -MY_GID:=$(shell id -g) - GENERATED_FILES=proto/felixbackend.pb.go proto/healthz.pb.go SRC_FILES=$(shell find . -name '*.go' |grep -v vendor) $(GENERATED_FILES) @@ -126,7 +120,7 @@ PROTOC_IMPORTS = -I proto\ protobuf: proto/felixbackend.pb.go proto/healthz.pb.go proto/felixbackend.pb.go: proto/felixbackend.proto - $(DOCKER_RUN) -v $(CURDIR):/src:rw --user $(LOCAL_USER_ID):$(LOCAL_USER_ID) \ + $(DOCKER_RUN) -v $(CURDIR):/src:rw --user $(LOCAL_USER_ID):$(LOCAL_GROUP_ID) \ $(PROTOC_CONTAINER) \ $(PROTOC_IMPORTS) \ proto/*.proto \ @@ -134,7 +128,7 @@ proto/felixbackend.pb.go: proto/felixbackend.proto $(MAKE) fix proto/healthz.pb.go: proto/healthz.proto - $(DOCKER_RUN) -v $(CURDIR):/src:rw --user $(LOCAL_USER_ID):$(LOCAL_USER_ID) \ + $(DOCKER_RUN) -v $(CURDIR):/src:rw --user $(LOCAL_USER_ID):$(LOCAL_GROUP_ID) \ $(PROTOC_CONTAINER) \ $(PROTOC_IMPORTS) \ proto/*.proto \ diff --git a/calicoctl/Dockerfile.arm64 b/calicoctl/Dockerfile.arm64 index 60cdf9d91e9..7fea52a2012 100644 --- a/calicoctl/Dockerfile.arm64 +++ b/calicoctl/Dockerfile.arm64 @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -ARG QEMU_IMAGE=calico/go-build:v0.55 +ARG QEMU_IMAGE=calico/go-build:latest ARG UBI_IMAGE FROM ${QEMU_IMAGE} as qemu diff --git a/calicoctl/Dockerfile.armv7 b/calicoctl/Dockerfile.armv7 deleted file mode 100644 index dd3932a114b..00000000000 --- a/calicoctl/Dockerfile.armv7 +++ /dev/null @@ -1,19 +0,0 @@ -ARG QEMU_IMAGE -FROM --platform=linux/arm/v7 ${QEMU_IMAGE} as qemu - -FROM arm32v7/alpine:3.12 -# Enable non-native builds of this image on an amd64 hosts. -# This must be the first RUN command in this file! -COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin/ - -MAINTAINER Marc Crébassa - -ADD bin/calicoctl-linux-armv7 /calicoctl - -ENV CALICO_CTL_CONTAINER=TRUE -ENV PATH=$PATH:/ -# Delete qemu binaries -RUN rm /usr/bin/qemu-* - -WORKDIR /root -ENTRYPOINT ["/calicoctl"] diff --git a/calicoctl/Makefile b/calicoctl/Makefile index c3376f3b4d1..b4e32a57bf8 100644 --- a/calicoctl/Makefile +++ b/calicoctl/Makefile @@ -62,7 +62,6 @@ build-all: $(addprefix bin/calicoctl-linux-,$(VALIDARCHES)) bin/calicoctl-window build: bin/calicoctl-$(BUILDOS)-$(ARCH) # The supported different binary names. For each, ensure that an OS and ARCH is set bin/calicoctl-%-amd64: ARCH=amd64 -bin/calicoctl-%-armv7: ARCH=armv7 bin/calicoctl-%-arm64: ARCH=arm64 bin/calicoctl-%-ppc64le: ARCH=ppc64le bin/calicoctl-%-s390x: ARCH=s390x diff --git a/calicoctl/README.md b/calicoctl/README.md index 184d399b6ec..fa515faa4e3 100644 --- a/calicoctl/README.md +++ b/calicoctl/README.md @@ -51,7 +51,6 @@ The binary will be put in `./bin/` and named `calicoctl--`, e.g.: $ ls -1 ./bin/ calicoctl-linux-amd64 calicoctl-linux-arm64 -calicoctl-linux-armv7 calicoctl-linux-ppc64le calicoctl-linux-s390x calicoctl-darwin-amd64 diff --git a/cni-plugin/Dockerfile.armv7 b/cni-plugin/Dockerfile.armv7 deleted file mode 100644 index ffe36149571..00000000000 --- a/cni-plugin/Dockerfile.armv7 +++ /dev/null @@ -1,12 +0,0 @@ -FROM scratch - -ADD licenses/ /licenses -ADD LICENSE /licenses/ - -LABEL maintainer "maintainers@projectcalico.org" - -ADD bin/armv7 /opt/cni/bin/ - -ENV PATH=$PATH:/opt/cni/bin -WORKDIR /opt/cni/bin -CMD ["/opt/cni/bin/install"] \ No newline at end of file diff --git a/cni-plugin/Makefile b/cni-plugin/Makefile index ef3e6fc2326..22b0b5fe4ee 100644 --- a/cni-plugin/Makefile +++ b/cni-plugin/Makefile @@ -74,15 +74,8 @@ ifeq ($(ARCH),amd64) WINDOWS_BIN=bin/windows build: $(WINDOWS_BIN)/install.exe $(WINDOWS_BIN)/calico.exe $(WINDOWS_BIN)/calico-ipam.exe endif -# If ARCH is arm based, find the requested version/variant -ifeq ($(word 1,$(subst v, ,$(ARCH))),arm) -ARM_VERSION := $(word 2,$(subst v, ,$(ARCH))) -endif # Define go architecture flags to support arm variants GOARCH_FLAGS :=-e GOARCH=$(ARCH) -ifdef ARM_VERSION -GOARCH_FLAGS :=-e GOARCH=arm -e GOARM=$(ARM_VERSION) -endif build-all: $(addprefix sub-build-,$(VALIDARCHES)) sub-build-%: @@ -167,7 +160,6 @@ ut-datastore: docker run --rm -t --privileged --net=host \ $(EXTRA_DOCKER_ARGS) \ -e ETCD_IP=$(LOCAL_IP_ENV) \ - -e LOCAL_USER_ID=$(LOCAL_USER_ID) \ -e RUN_AS_ROOT=true \ -e ARCH=$(ARCH) \ -e PLUGIN=calico \ diff --git a/confd/Makefile b/confd/Makefile index c166a8c6348..b734085db3b 100644 --- a/confd/Makefile +++ b/confd/Makefile @@ -25,7 +25,7 @@ clean: ############################################################################### # Building the binary ############################################################################### -build: bin/confd +build: bin/confd-$(ARCH) build-all: $(addprefix sub-build-,$(VALIDARCHES)) sub-build-%: $(MAKE) build ARCH=$* @@ -36,9 +36,7 @@ ifeq ($(FIPS),true) else $(call build_binary, $(PACKAGE_NAME), $@) endif - -bin/confd: bin/confd-$(ARCH) - ln -f bin/confd-$(ARCH) bin/confd + ln -sf confd-$(ARCH) bin/confd ############################################################################### # Unit Tests @@ -51,7 +49,7 @@ test: ut test-kdd test-etcd .PHONY: test-kdd ## Run template tests against KDD -test-kdd: bin/confd bin/kubectl bin/bird bin/bird6 bin/calico-node bin/calicoctl bin/typha run-k8s-apiserver +test-kdd: bin/confd-$(ARCH) bin/kubectl bin/bird bin/bird6 bin/calico-node bin/calicoctl bin/typha run-k8s-apiserver -git clean -fx etc/calico/confd mkdir -p tests/logs docker run --rm --net=host \ @@ -84,7 +82,7 @@ test-kdd: bin/confd bin/kubectl bin/bird bin/bird6 bin/calico-node bin/calicoctl .PHONY: test-etcd ## Run template tests against etcd -test-etcd: bin/confd bin/etcdctl bin/bird bin/bird6 bin/calico-node bin/kubectl bin/calicoctl run-etcd run-k8s-apiserver +test-etcd: bin/confd-$(ARCH) bin/etcdctl bin/bird bin/bird6 bin/calico-node bin/kubectl bin/calicoctl run-etcd run-k8s-apiserver -git clean -fx etc/calico/confd mkdir -p tests/logs docker run --rm --net=host \ diff --git a/felix/.gitignore b/felix/.gitignore index 1c185dd6f3c..6e267dd2e5c 100644 --- a/felix/.gitignore +++ b/felix/.gitignore @@ -22,7 +22,6 @@ /artifacts/ /bpf-gpl/include/libbpf/src/amd64/ /bpf-gpl/include/libbpf/src/arm64/ -bpf-gpl/include/libbpf/src/armv7/ bpf-gpl/include/libbpf/src/ppc64le/ # IDE files. diff --git a/felix/Makefile b/felix/Makefile index 56b16cdc5bd..9a316e64f08 100644 --- a/felix/Makefile +++ b/felix/Makefile @@ -569,18 +569,11 @@ cover-report: combined.coverprofile column -t | \ grep -v '100\.0%'" -bin/calico-felix.transfer-url: bin/calico-felix - $(DOCKER_GO_BUILD) sh -c 'curl --upload-file bin/calico-felix https://transfer.sh/calico-felix > $@' - # Cross-compile Felix for Windows bin/calico-felix.exe: $(SRC_FILES) @echo Building felix for Windows... $(call build_windows_binary, "$(PACKAGE_NAME)/cmd/calico-felix", $@) -.PHONY: patch-script -patch-script: bin/calico-felix.transfer-url - $(DOCKER_GO_BUILD) bash -c 'utils/make-patch-script.sh $$(cat bin/calico-felix.transfer-url)' - ## Generate a diagram of Felix's internal calculation graph. docs/calc.pdf: docs/calc.dot cd docs/ && dot -Tpdf calc.dot -o calc.pdf diff --git a/felix/bpf-apache/Makefile b/felix/bpf-apache/Makefile index 4c0ec29f7d3..201f1880630 100644 --- a/felix/bpf-apache/Makefile +++ b/felix/bpf-apache/Makefile @@ -31,8 +31,8 @@ CFLAGS += \ TRIPLET := $(shell gcc -dumpmachine) CFLAGS += -I/usr/include/$(TRIPLET) -CC := clang-15 -LD := llc-15 +CC := clang-16 +LD := llc C_FILES:=filter.c redir.c sockops.c OBJS:=$(addprefix bin/,$(C_FILES:.c=.o)) diff --git a/felix/bpf-gpl/Makefile b/felix/bpf-gpl/Makefile index 0ba3e6328f4..d0219c34794 100644 --- a/felix/bpf-gpl/Makefile +++ b/felix/bpf-gpl/Makefile @@ -44,8 +44,8 @@ CFLAGS += \ TRIPLET := $(shell gcc -dumpmachine) CFLAGS += -I/usr/include/$(TRIPLET) -CC := clang-15 -LD := llc-15 +CC := clang-16 +LD := llc UT_C_FILES:=$(shell find ut -name '*.c') UT_OBJS:=$(UT_C_FILES:.c=.o) $(shell ./list-ut-objs) diff --git a/felix/bpf/libbpf/libbpf.go b/felix/bpf/libbpf/libbpf.go index 7c78886d5ce..377c1ee26af 100644 --- a/felix/bpf/libbpf/libbpf.go +++ b/felix/bpf/libbpf/libbpf.go @@ -29,7 +29,6 @@ import ( // #cgo CFLAGS: -I${SRCDIR}/../../bpf-gpl/include/libbpf/src -I${SRCDIR}/../../bpf-gpl/include/libbpf/include/uapi -I${SRCDIR}/../../bpf-gpl -Werror // #cgo amd64 LDFLAGS: -L${SRCDIR}/../../bpf-gpl/include/libbpf/src/amd64 -lbpf -lelf -lz // #cgo arm64 LDFLAGS: -L${SRCDIR}/../../bpf-gpl/include/libbpf/src/arm64 -lbpf -lelf -lz -// #cgo armv7 LDFLAGS: -L${SRCDIR}/../../bpf-gpl/include/libbpf/src/armv7 -lbpf -lelf -lz // #include "libbpf_api.h" import "C" diff --git a/felix/docker-image/Dockerfile.amd64 b/felix/docker-image/Dockerfile.amd64 index 6c403481903..14e2a20cf32 100644 --- a/felix/docker-image/Dockerfile.amd64 +++ b/felix/docker-image/Dockerfile.amd64 @@ -61,8 +61,12 @@ COPY --from=wgtool /usr/bin/wg /usr/bin/wg RUN update-alternatives --set iptables /usr/sbin/iptables-legacy RUN update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy -ADD felix.cfg /etc/calico/felix.cfg -ADD calico-felix-wrapper /usr/bin +# Felix is built with RHEL/UBI and links against libpcap.so.1. We need this symbolic link +# until Debian changes the soname from .0.8 to .1. +RUN ln -s libpcap.so.1.8.1 /usr/lib/x86_64-linux-gnu/libpcap.so.1 + +COPY felix.cfg /etc/calico/felix.cfg +COPY calico-felix-wrapper /usr/bin COPY --from=bpftool /bpftool /usr/bin WORKDIR /code diff --git a/felix/docker-image/Dockerfile.s390x b/felix/docker-image/Dockerfile.s390x index 078e6d64de6..f6081b1f566 100644 --- a/felix/docker-image/Dockerfile.s390x +++ b/felix/docker-image/Dockerfile.s390x @@ -50,8 +50,12 @@ COPY --from=wgtool /usr/bin/wg /usr/bin/wg RUN update-alternatives --set iptables /usr/sbin/iptables-legacy RUN update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy -ADD felix.cfg /etc/calico/felix.cfg -ADD calico-felix-wrapper /usr/bin +# Felix is built with RHEL/UBI and links against libpcap.so.1. We need this symbolic link +# until Debian changes the soname from .0.8 to .1. +RUN ln -s libpcap.so.1.8.1 /usr/lib/x86_64-linux-gnu/libpcap.so.1 + +COPY felix.cfg /etc/calico/felix.cfg +COPY calico-felix-wrapper /usr/bin COPY --from=bpftool /bpftool /usr/bin WORKDIR /code diff --git a/felix/utils/make-patch-script.sh b/felix/utils/make-patch-script.sh deleted file mode 100755 index 0ad085b33fd..00000000000 --- a/felix/utils/make-patch-script.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -set -e - -url=$1 -echo "URL: $url" -sha_sum=$(cd bin; sha256sum calico-felix) - -echo -echo "Run the following script on the target server to patch the" -echo "/opt/calico-felix/calico-felix binary:" -echo -echo "curl -o calico-felix $url &&" -echo " if echo '$sha_sum' | sha256sum --status --check; then \\" -echo " sudo stop calico-felix || sudo systemctl stop calico-felix; " -echo " sudo cp calico-felix /opt/calico-felix/calico-felix && \\" -echo " sudo chmod +x /opt/calico-felix/calico-felix && \\" -echo " sudo start calico-felix || sudo systemctl start calico-felix;" -echo " else" -echo " echo 'Incorrect hash, file may have been tampered with!'" -echo " fi" diff --git a/hack/release/packaging/utils/make-packages.sh b/hack/release/packaging/utils/make-packages.sh index 9ae18e25de4..85476107ee5 100755 --- a/hack/release/packaging/utils/make-packages.sh +++ b/hack/release/packaging/utils/make-packages.sh @@ -19,9 +19,7 @@ version=${FORCE_VERSION:-`git_auto_version`} version=`strip_v ${version}` sha=`git_commit_id` -MY_UID=`id -u` -MY_GID=`id -g` -DOCKER_RUN_RM="docker run --rm --user ${MY_UID}:${MY_GID} -v $rpmDir:/rpm -v $(dirname `pwd`):/code -w /code/$(basename `pwd`)" +DOCKER_RUN_RM="docker run --rm --user $(id -u):$(id -g) -v $rpmDir:/rpm -v $(dirname `pwd`):/code -w /code/$(basename `pwd`)" # Determine if this is a release (i.e. corresponds exactly to a Git tag) or a # snapshot. diff --git a/kube-controllers/Dockerfile.armv7 b/kube-controllers/Dockerfile.armv7 deleted file mode 100644 index 59e8a32c3a3..00000000000 --- a/kube-controllers/Dockerfile.armv7 +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 2015-2018 Tigera, Inc -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -FROM scratch -LABEL maintainer "Marc Crebassa " - -ADD bin/kube-controllers-linux-armv7 /usr/bin/kube-controllers -ADD bin/check-status-linux-armv7 /usr/bin/check-status -ENTRYPOINT ["/usr/bin/kube-controllers"] diff --git a/kube-controllers/Makefile b/kube-controllers/Makefile index 7b5399afbad..004ef44b44e 100644 --- a/kube-controllers/Makefile +++ b/kube-controllers/Makefile @@ -78,7 +78,7 @@ $(BINDIR)/check-status-linux-$(ARCH): $(SRC_FILES) $(call build_binary, ./cmd/check-status, $@) $(BINDIR)/kubectl-$(ARCH): - curl -sSf -L --retry 5 -o $@ https://storage.googleapis.com/kubernetes-release/release/$(K8S_VERSION)/bin/linux/$(subst armv7,arm,$(ARCH))/kubectl + curl -sSf -L --retry 5 -o $@ https://storage.googleapis.com/kubernetes-release/release/$(K8S_VERSION)/bin/linux/$(ARCH)/kubectl chmod +x $@ ############################################################################### diff --git a/kube-controllers/docker-images/flannel-migration/Dockerfile.armv7 b/kube-controllers/docker-images/flannel-migration/Dockerfile.armv7 deleted file mode 100644 index f372e3cef35..00000000000 --- a/kube-controllers/docker-images/flannel-migration/Dockerfile.armv7 +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 2019 Tigera, Inc -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -FROM scratch -LABEL maintainer "Marc Crebassa " - -ADD bin/kubectl-armv7 /usr/bin/kubectl -ADD bin/kube-controllers-linux-armv7 /usr/bin/kube-controllers -ADD bin/check-status-linux-armv7 /usr/bin/check-status -ENTRYPOINT ["/usr/bin/kube-controllers"] diff --git a/lib.Makefile b/lib.Makefile index 24153298462..493591155b1 100644 --- a/lib.Makefile +++ b/lib.Makefile @@ -47,9 +47,6 @@ endif ifeq ($(BUILDARCH),x86_64) BUILDARCH=amd64 endif -ifeq ($(BUILDARCH),armv7l) - BUILDARCH=armv7 -endif # unless otherwise set, I am building for my own architecture, i.e. not cross-compiling ARCH ?= $(BUILDARCH) @@ -61,17 +58,6 @@ endif ifeq ($(ARCH),x86_64) override ARCH=amd64 endif -ifeq ($(ARCH),armv7l) - override ARCH=armv7 -endif -ifeq ($(ARCH),armhfv7) - override ARCH=armv7 -endif - -# If ARCH is arm based, find the requested version/variant -ifeq ($(word 1,$(subst v, ,$(ARCH))),arm) -ARM_VERSION := $(word 2,$(subst v, ,$(ARCH))) -endif # detect the local outbound ip address LOCAL_IP_ENV?=$(shell ip route get 8.8.8.8 | head -1 | awk '{print $$7}') @@ -79,12 +65,8 @@ LOCAL_IP_ENV?=$(shell ip route get 8.8.8.8 | head -1 | awk '{print $$7}') LATEST_IMAGE_TAG?=latest # these macros create a list of valid architectures for pushing manifests -space := -space += comma := , double_quote := $(shell echo '"') -prefix_linux = $(addprefix linux/,$(strip $(subst armv,arm/v,$1))) -join_platforms = $(subst $(space),$(comma),$(call prefix_linux,$(strip $1))) ## Targets used when cross building. .PHONY: native register @@ -232,7 +214,7 @@ BUILD_ID:=$(shell git rev-parse HEAD || uuidgen | sed 's/-//g') # Variables elsewhere that depend on this (such as LDFLAGS) must also be lazy. GIT_DESCRIPTION=$(shell git describe --tags --dirty --long --always --abbrev=12 || echo '') -# Calculate a timestamp for any build artefacts. +# Calculate a timestamp for any build artifacts. ifneq ($(OS),Windows_NT) DATE:=$(shell date -u +'%FT%T%z') endif @@ -270,9 +252,6 @@ EXTRA_DOCKER_ARGS += -v $(GOMOD_CACHE):/go/pkg/mod:rw # Define go architecture flags to support arm variants GOARCH_FLAGS :=-e GOARCH=$(ARCH) -ifdef ARM_VERSION -GOARCH_FLAGS :=-e GOARCH=arm -e GOARM=$(ARM_VERSION) -endif # Location of certificates used in UTs. REPO_ROOT := $(shell git rev-parse --show-toplevel) @@ -283,9 +262,6 @@ CERTS_PATH := $(REPO_ROOT)/hack/test/certs ifeq ($(ARCH),arm64) TARGET_PLATFORM=--platform=linux/arm64/v8 endif -ifeq ($(ARCH),armv7) -TARGET_PLATFORM=--platform=linux/arm/v7 -endif ifeq ($(ARCH),ppc64le) TARGET_PLATFORM=--platform=linux/ppc64le endif @@ -475,21 +451,14 @@ endif GIT_CMD = git DOCKER_CMD = docker -MANIFEST_TOOL_EXTRA_DOCKER_ARGS ?= -# note that when using the MANIFEST_TOOL command you need to close the command with $(double_quote). -MANIFEST_TOOL_CMD = docker run -t --entrypoint /bin/sh -v $(DOCKER_CONFIG):/root/.docker/config.json $(MANIFEST_TOOL_EXTRA_DOCKER_ARGS) $(CALICO_BUILD) -c \ - $(double_quote)/usr/bin/manifest-tool - ifdef CONFIRM CRANE = $(CRANE_CMD) GIT = $(GIT_CMD) DOCKER = $(DOCKER_CMD) -MANIFEST_TOOL = $(MANIFEST_TOOL_CMD) else CRANE = echo [DRY RUN] $(CRANE_CMD) GIT = echo [DRY RUN] $(GIT_CMD) DOCKER = echo [DRY RUN] $(DOCKER_CMD) -MANIFEST_TOOL = echo [DRY RUN] $(MANIFEST_TOOL_CMD) endif commit-and-push-pr: @@ -907,21 +876,6 @@ push-image-arch-to-registry-%: $(NOECHO) $(NOOP)\ ) -manifest-tool-generate-spec: var-require-all-BUILD_IMAGE-IMAGETAG-MANIFEST_TOOL_SPEC_TEMPLATE-OUTPUT_FILE - bash $(MANIFEST_TOOL_SPEC_TEMPLATE) $(OUTPUT_FILE) $(BUILD_IMAGE) $(IMAGETAG) - -## push multi-arch manifest where supported. If the MANIFEST_TOOL_SPEC_TEMPLATE variable is specified this will include -## the `from-spec` version of the tool. -push-manifests: var-require-all-IMAGETAG $(addprefix sub-manifest-,$(call escapefs,$(PUSH_MANIFEST_IMAGES))) -ifdef MANIFEST_TOOL_SPEC_TEMPLATE -sub-manifest-%: var-require-all-OUTPUT_DIR - $(MAKE) manifest-tool-generate-spec BUILD_IMAGE=$(call unescapefs,$*) OUTPUT_FILE=$(OUTPUT_DIR)$*.yaml - $(MANIFEST_TOOL) push from-spec $(OUTPUT_DIR)$*.yaml$(double_quote) -else -sub-manifest-%: - $(MANIFEST_TOOL) push from-args --platforms $(call join_platforms,$(VALIDARCHES)) --template $(call unescapefs,$*):$(IMAGETAG)-ARCHVARIANT --target $(call unescapefs,$*):$(IMAGETAG)$(double_quote) -endif - # cd-common tags and pushes images with the branch name and git version. This target uses PUSH_IMAGES, BUILD_IMAGE, # and BRANCH_NAME env variables to figure out what to tag and where to push it to. cd-common: var-require-one-of-CONFIRM-DRYRUN var-require-all-BRANCH_NAME diff --git a/metadata.mk b/metadata.mk index d1d21350bc5..33abf9230d6 100644 --- a/metadata.mk +++ b/metadata.mk @@ -3,7 +3,7 @@ ################################################################################################# # The version of github.com/projectcalico/go-build to use. -GO_BUILD_VER = v0.89 +GO_BUILD_VER = v0.90 # Env var to ACK Ginkgo deprecation warnings, may need updating with go-build. ACK_GINKGO=ACK_GINKGO_DEPRECATIONS=1.16.5 @@ -12,7 +12,7 @@ K8S_VERSION=v1.27.8 # Version of various tools used in the build and tests. COREDNS_VERSION=1.5.2 -ETCD_VERSION=v3.5.1 +ETCD_VERSION=v3.5.6 # FIXME upgrading to kindest/node newer than v1.24.7 causes Node/kind-cluster and sig-network conformance # tests to timeout or fail. KINDEST_NODE_VERSION=v1.24.7 diff --git a/node/Dockerfile.amd64 b/node/Dockerfile.amd64 index 01dd9b06677..5a129fc617b 100644 --- a/node/Dockerfile.amd64 +++ b/node/Dockerfile.amd64 @@ -235,10 +235,6 @@ COPY --from=ubi / / # Add in top-level license file COPY LICENSE /licenses -# Node is build on a debian image with pcap 1.8, but there is no 1.8 available so we copy 1.9 over. Ideally we should -# should build node on a centos image so we can have correct pcap version alignment. -RUN ln -s $(ls /usr/lib64/libpcap.so.1.9.* | tail -n 1) /usr/lib64/libpcap.so.0.8 - CMD ["start_runit"] # Required labels for certification diff --git a/node/Dockerfile.armv7 b/node/Dockerfile.armv7 deleted file mode 100644 index b55e14553e9..00000000000 --- a/node/Dockerfile.armv7 +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (c) 2015-2016 Tigera, Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -ARG QEMU_IMAGE=calico/go-build:latest -ARG BIRD_IMAGE=calico/bird:latest - -FROM ${QEMU_IMAGE} as qemu -FROM ${BIRD_IMAGE} as bird - -FROM arm32v7/alpine:3.18 as base -MAINTAINER Marc Crébassa - -ARG ARCH=armv7 -ARG GIT_VERSION - -# Enable non-native builds of this image on an amd64 hosts. -# This must be the first RUN command in this file! -# we only need this for the intermediate "base" image, so we can run all the apk and other commands -# when running on a kernel >= 4.8, this will become less relevant -COPY --from=qemu /usr/bin/qemu-arm-static /usr/bin/ - -# Install remaining runtime deps required for felix from the global repository -RUN apk add --no-cache bash ip6tables ipset iputils iproute2 conntrack-tools runit ca-certificates - -# Copy our bird binaries in -COPY --from=bird /bird* /bin/ - -# Copy in the filesystem - this contains felix, calico-bgp-daemon etc... -COPY filesystem/ / - -# Copy in the calico-node binary -COPY dist/bin/calico-node-${ARCH} /bin/calico-node - -# Copy in the mountns binary -COPY dist/bin/mountns-${ARCH} /bin/mountns - -# Set the suid bit on mountns -RUN chmod u+s /bin/mountns - -RUN rm /usr/bin/qemu-arm-static - -CMD ["start_runit"] - -# Required labels for certification -LABEL name="Calico node" \ - vendor="Project Calico" \ - version=$GIT_VERSION \ - release="1" \ - summary="Calico node handles networking and policy for Calico" \ - description="Calico node handles networking and policy for Calico" \ - maintainer="maintainers@tigera.io" - - -# Tell sv where to find the services. -ENV SVDIR=/etc/service/enabled diff --git a/pod2daemon/Dockerfile.armv7 b/pod2daemon/Dockerfile.armv7 deleted file mode 100644 index 2b2a79491de..00000000000 --- a/pod2daemon/Dockerfile.armv7 +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (c) 2018-2019 Tigera, Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM arm32v7/alpine:3.16 - -ADD flexvol/docker/flexvol.sh /usr/local/bin/ -ADD bin/flexvol-armv7 /usr/local/bin/flexvol - -ENTRYPOINT ["/usr/local/bin/flexvol.sh"] diff --git a/pod2daemon/Makefile b/pod2daemon/Makefile index 7b987c934d5..81f67f63574 100644 --- a/pod2daemon/Makefile +++ b/pod2daemon/Makefile @@ -73,14 +73,12 @@ build: $(BINDIR)/node-driver-registrar-$(ARCH) bin/flexvol-$(ARCH) $(BINDIR)/csi # so we can disable it across the board. bin/flexvol-amd64: ARCH=amd64 bin/flexvol-arm64: ARCH=arm64 -bin/flexvol-armv7: ARCH=armv7 bin/flexvol-ppc64le: ARCH=ppc64le bin/flexvol-s390x: ARCH=s390x bin/flexvol-%: $(SRC_FILES) $(call build_binary, flexvol/flexvoldriver.go, $@) $(BINDIR)/csi-driver-arm64: ARCH=arm64 -$(BINDIR)/csi-driver-armv7: ARCH=armv7 $(BINDIR)/csi-driver-ppc64le: ARCH=ppc64le $(BINDIR)/csi-driver-s390x: ARCH=s390x $(BINDIR)/csi-driver-%: $(SRC_FILES) @@ -107,10 +105,6 @@ endif else ifeq ($(ARCH), $(filter $(ARCH),arm64)) CGO_ENABLED=0 REGISTRAR_BUILD_CMD=$(REGISTRAR_TIGERA_BUILD_CMD) -else ifeq ($(ARCH), $(filter $(ARCH),armv7)) -CGO_ENABLED=0 -GOARCH=arm -e GOARM=7 -REGISTRAR_BUILD_CMD=$(REGISTRAR_TIGERA_BUILD_CMD) else ifeq ($(ARCH), $(filter $(ARCH),ppc64le)) BUILD_PLATFORMS="linux ppc64le ppc64le" REGISTRAR_BUILD_CMD=$(REGISTRAR_UPSTREAM_BUILD_CMD) diff --git a/pod2daemon/csidriver/Dockerfile.armv7 b/pod2daemon/csidriver/Dockerfile.armv7 deleted file mode 100644 index 63d3a0a0653..00000000000 --- a/pod2daemon/csidriver/Dockerfile.armv7 +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2022 Tigera, Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM arm32v7/alpine:3.16 - -ADD bin/csi-driver-armv7 /usr/local/bin/csi-driver - -ENTRYPOINT ["/usr/local/bin/csi-driver"] diff --git a/pod2daemon/node-driver-registrar-docker/Dockerfile.armv7 b/pod2daemon/node-driver-registrar-docker/Dockerfile.armv7 deleted file mode 100644 index 1962e9daf2d..00000000000 --- a/pod2daemon/node-driver-registrar-docker/Dockerfile.armv7 +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (c) 2022 Tigera, Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM arm32v7/alpine:3.16 - -ADD bin/node-driver-registrar-armv7 /usr/local/bin/node-driver-registrar - -ENTRYPOINT ["/usr/local/bin/node-driver-registrar"] diff --git a/typha/Makefile b/typha/Makefile index 426174a9cdf..12bbdc1828e 100644 --- a/typha/Makefile +++ b/typha/Makefile @@ -68,17 +68,11 @@ clean: ############################################################################### # Building the binary ############################################################################### -build: $(BINDIR)/calico-typha +build: $(BINDIR)/calico-typha-$(ARCH) build-all: $(addprefix sub-build-,$(VALIDARCHES)) sub-build-%: $(MAKE) build ARCH=$* -$(BINDIR)/calico-typha: $(BINDIR)/calico-typha-$(ARCH) - ln -f $(BINDIR)/calico-typha-$(ARCH) $(BINDIR)/calico-typha - -$(BINDIR)/wrapper: $(BINDIR)/wrapper-$(ARCH) - ln -f $(BINDIR)/wrapper-$(ARCH) $(BINDIR)/wrapper - $(BINDIR)/wrapper-$(ARCH): $(SRC_FILES) $(LOCAL_BUILD_DEP) ifeq ($(FIPS),true) $(call build_cgo_boring_binary, ./cmd/wrapper, $@) @@ -262,9 +256,6 @@ cover-report: combined.coverprofile column -t | \ grep -v '100\.0%'" -$(BINDIR)/calico-typha.transfer-url: $(BINDIR)/calico-typha-$(ARCH) - $(DOCKER_RUN) $(CALICO_BUILD) sh -c 'curl --upload-file $(BINDIR)/calico-typha-$(ARCH) https://transfer.sh/calico-typha > $@' - # Install or update the tools used by the build .PHONY: update-tools update-tools: diff --git a/typha/README.md b/typha/README.md index dac251bd784..9b874b3e5f4 100644 --- a/typha/README.md +++ b/typha/README.md @@ -1,16 +1,4 @@ -[![Build Status](https://semaphoreci.com/api/v1/calico/typha/branches/master/shields_badge.svg)](https://semaphoreci.com/calico/typha) -[![Coverage Status](https://coveralls.io/repos/github/projectcalico/typha/badge.svg?branch=master&cachebreaker=1)](https://coveralls.io/github/projectcalico/typha?branch=master) -[![Slack Status](https://slack.projectcalico.org/badge.svg)](https://slack.projectcalico.org) -[![IRC Channel](https://img.shields.io/badge/irc-%23calico-blue.svg)](https://kiwiirc.com/client/irc.freenode.net/#calico) -[![Go Report Card](https://goreportcard.com/badge/github.com/projectcalico/typha)](https://goreportcard.com/report/github.com/projectcalico/typha) -# Project Calico - - +# Typha This repository contains the source code for Project Calico's optional Typha daemon. An instance of Typha sits between the datastore (such as the Kubernetes API server) and many instances of Felix. @@ -74,38 +62,48 @@ To build Typha, you will need: - GNU make. Then, as a one-off, run -``` + +```bash make update-tools ``` -which will install a couple more go tools that we haven't yet containerised. + +which will install a couple more go tools that we haven't yet containerized. Then, to build the calico-typha binary: + +```bash +make build ``` -make bin/calico-typha -``` + or, the `calico/typha` docker image: -``` + +```bash make image ``` ## How can I run Typha's unit tests? To run all the UTs: -``` + +```bash make ut ``` To start a `ginkgo watch`, which will re-run the relevant UTs as you update files: -``` + +```bash make ut-watch ``` To get coverage stats: -``` + +```bash make cover-report ``` + or -``` + +```bash make cover-browser ``` @@ -123,10 +121,12 @@ run Typha's unit tests. There are several ways to run ginkgo. One option is to change directory to the package you want to test, then run `ginkgo`. Another is to use ginkgo's watch feature to monitor files for changes: -``` + +```bash cd go ginkgo watch -r ``` + Ginkgo will re-run tests as files are modified and saved. ## How do I build packages/run Typha? @@ -135,11 +135,14 @@ Ginkgo will re-run tests as files are modified and saved. After building the docker image (see above), you can run Typha and log to screen with, for example: -`docker run --privileged --net=host -e TYPHA_LOGSEVERITYSCREEN=INFO calico/typha` + +```bash +docker run --privileged --net=host -e TYPHA_LOGSEVERITYSCREEN=INFO calico/typha +``` ## License Calico binaries are licensed under the [Apache v2.0 license](LICENSE), with the exception of some [GPL licensed eBPF programs](https://github.com/projectcalico/felix/tree/master/bpf-gpl). -Calico imports packages with a number of apache-compatible licenses. For more information, see [filesystem/licenses](./filesystem/licenses). In addition, the base container image contains -pre-packaged software with a variety of licenses. +Calico imports packages with a number of apache-compatible licenses. For more information, see [filesystem/licenses](./filesystem/licenses). +In addition, the base container image contains pre-packaged software with a variety of licenses.