Skip to content

Commit

Permalink
Converts k8s apiextensions v1beta1 to v1 (#124)
Browse files Browse the repository at this point in the history
* converts k8s v1beta1 to v1

Updates helm to 3.6.3 (#123)

* updates helm dep to 3.6.3 and all other things that depend on that version

* put cancelfunc on context in setup

finish updates

* try using envvar
  • Loading branch information
stinkyfingers authored Aug 12, 2021
1 parent 29be584 commit 022d37a
Show file tree
Hide file tree
Showing 14 changed files with 935 additions and 899 deletions.
8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Image URL to use all building/pushing image targets
IMG ?= controller:latest
# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
CRD_OPTIONS ?= "crd:trivialVersions=true"
CRD_OPTIONS ?= "crd:trivialVersions=true,crdVersions=v1"

# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
Expand All @@ -14,7 +14,7 @@ endif
GOOS=$(shell go env GOOS)
GOARCH=$(shell go env GOARCH)

KUBEBUILDER_VERSION="1.0.8"
KUBEBUILDER_VERSION="2.3.0"
KUBEBUILDER_INSTALL_DIR ?= "/usr/local"
KUBEBUILDER_RELEASE="kubebuilder_${KUBEBUILDER_VERSION}_${GOOS}_${GOARCH}"

Expand All @@ -34,7 +34,7 @@ test: generate fmt vet manifests
manager: generate fmt vet
go build -o bin/manager cmd/manager/main.go

# Build ketch binary
# Build ketch binary
.PHONY: ketch
ketch: generate fmt vet
go build -o bin/ketch ./cmd/ketch/
Expand Down Expand Up @@ -119,7 +119,7 @@ ifeq (, $(shell which controller-gen))
CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
cd $$CONTROLLER_GEN_TMP_DIR ;\
go mod init tmp ;\
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.2.5 ;\
go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.4.1 ;\
rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
}
CONTROLLER_GEN=$(GOBIN)/controller-gen
Expand Down
1,147 changes: 575 additions & 572 deletions config/crd/bases/theketch.io_apps.yaml

Large diffs are not rendered by default.

288 changes: 144 additions & 144 deletions config/crd/bases/theketch.io_frameworks.yaml
Original file line number Diff line number Diff line change
@@ -1,168 +1,168 @@

---
apiVersion: apiextensions.k8s.io/v1beta1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.5
controller-gen.kubebuilder.io/version: v0.4.1
creationTimestamp: null
name: frameworks.theketch.io
spec:
additionalPrinterColumns:
- JSONPath: .status.phase
name: Status
type: string
- JSONPath: .status.namespace.name
name: Target Namespace
type: string
- JSONPath: .status.apps
name: apps
type: string
- JSONPath: .spec.appQuotaLimit
name: quota
type: string
group: theketch.io
names:
kind: Framework
listKind: FrameworkList
plural: frameworks
singular: framework
scope: Cluster
subresources:
status: {}
validation:
openAPIV3Schema:
description: Framework is the Schema for the frameworks API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: FrameworkSpec defines the desired state of Framework
properties:
appQuotaLimit:
type: integer
ingressController:
description: IngressControllerSpec contains configuration for an ingress
controller.
properties:
className:
type: string
clusterIssuer:
type: string
serviceEndpoint:
type: string
type:
description: IngressControllerType is a type of an ingress controller
for this framework.
enum:
- traefik
- istio
type: string
required:
- type
type: object
name:
type: string
namespace:
minLength: 1
type: string
version:
type: string
required:
- appQuotaLimit
- name
- namespace
type: object
status:
description: FrameworkStatus defines the observed state of Framework
properties:
apps:
items:
versions:
- additionalPrinterColumns:
- jsonPath: .status.phase
name: Status
type: string
- jsonPath: .status.namespace.name
name: Target Namespace
type: string
- jsonPath: .status.apps
name: apps
type: string
- jsonPath: .spec.appQuotaLimit
name: quota
type: string
name: v1beta1
schema:
openAPIV3Schema:
description: Framework is the Schema for the frameworks API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: FrameworkSpec defines the desired state of Framework
properties:
appQuotaLimit:
type: integer
ingressController:
description: IngressControllerSpec contains configuration for an ingress
controller.
properties:
className:
type: string
clusterIssuer:
type: string
serviceEndpoint:
type: string
type:
description: IngressControllerType is a type of an ingress controller
for this framework.
enum:
- traefik
- istio
type: string
required:
- type
type: object
name:
type: string
type: array
jobs:
items:
namespace:
minLength: 1
type: string
type: array
message:
type: string
namespace:
description: 'ObjectReference contains enough information to let you
inspect or modify the referred object. --- New uses of this type are
discouraged because of difficulty describing its usage when embedded
in APIs. 1. Ignored fields. It includes many fields which are not
generally honored. For instance, ResourceVersion and FieldPath are
both very rarely valid in actual usage. 2. Invalid usage help. It
is impossible to add specific help for individual usage. In most
embedded usages, there are particular restrictions like, "must
refer only to types A and B" or "UID not honored" or "name must be
restricted". Those cannot be well described when embedded. 3.
Inconsistent validation. Because the usages are different, the validation
rules are different by usage, which makes it hard for users to predict
what will happen. 4. The fields are both imprecise and overly precise. Kind
is not a precise mapping to a URL. This can produce ambiguity during
interpretation and require a REST mapping. In most cases, the dependency
is on the group,resource tuple and the version of the actual struct
is irrelevant. 5. We cannot easily change it. Because this type
is embedded in many locations, updates to this type will affect
numerous schemas. Don''t make new APIs embed an underspecified API
type they do not control. Instead of using this type, create a locally
provided and used type that is well-focused on your reference. For
example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
.'
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead of an
entire object, this string should contain a valid JSON/Go field
access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within
a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax is chosen only
to have some well-defined way of referencing a part of an object.
TODO: this design is not final and this field is subject to change
in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference is
made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
version:
type: string
required:
- appQuotaLimit
- name
- namespace
type: object
status:
description: FrameworkStatus defines the observed state of Framework
properties:
apps:
items:
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: array
jobs:
items:
type: string
type: object
phase:
type: string
type: object
type: object
version: v1beta1
versions:
- name: v1beta1
type: array
message:
type: string
namespace:
description: 'ObjectReference contains enough information to let you
inspect or modify the referred object. --- New uses of this type
are discouraged because of difficulty describing its usage when
embedded in APIs. 1. Ignored fields. It includes many fields which
are not generally honored. For instance, ResourceVersion and FieldPath
are both very rarely valid in actual usage. 2. Invalid usage help. It
is impossible to add specific help for individual usage. In most
embedded usages, there are particular restrictions like, "must
refer only to types A and B" or "UID not honored" or "name must
be restricted". Those cannot be well described when embedded. 3.
Inconsistent validation. Because the usages are different, the
validation rules are different by usage, which makes it hard for
users to predict what will happen. 4. The fields are both imprecise
and overly precise. Kind is not a precise mapping to a URL. This
can produce ambiguity during interpretation and require a REST
mapping. In most cases, the dependency is on the group,resource
tuple and the version of the actual struct is irrelevant. 5.
We cannot easily change it. Because this type is embedded in many
locations, updates to this type will affect numerous schemas. Don''t
make new APIs embed an underspecified API type they do not control.
Instead of using this type, create a locally provided and used type
that is well-focused on your reference. For example, ServiceReferences
for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
.'
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead of
an entire object, this string should contain a valid JSON/Go
field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within
a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]"
(container with index 2 in this pod). This syntax is chosen
only to have some well-defined way of referencing a part of
an object. TODO: this design is not final and this field is
subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
phase:
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
Expand Down
Loading

0 comments on commit 022d37a

Please sign in to comment.