-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Lanture1064 <[email protected]>
- Loading branch information
1 parent
e7f3276
commit dc24fd5
Showing
20 changed files
with
741 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
/* | ||
Copyright 2023 KubeAGI. | ||
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. | ||
*/ | ||
|
||
package v1alpha1 | ||
|
||
import ( | ||
"context" | ||
corev1 "k8s.io/api/core/v1" | ||
"k8s.io/apimachinery/pkg/types" | ||
"sigs.k8s.io/controller-runtime/pkg/client" | ||
) | ||
|
||
func (e Embedder) AuthAPIKey(ctx context.Context, c client.Client) (string, error) { | ||
if e.Spec.Auth == "" { | ||
return "", nil | ||
} | ||
authSecret := &corev1.Secret{} | ||
err := c.Get(ctx, types.NamespacedName{Name: e.Spec.Auth, Namespace: e.Namespace}, authSecret) | ||
if err != nil { | ||
return "", err | ||
} | ||
return string(authSecret.Data["apiKey"]), nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
/* | ||
Copyright 2023 KubeAGI. | ||
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. | ||
*/ | ||
|
||
package v1alpha1 | ||
|
||
import ( | ||
"github.com/kubeagi/arcadia/pkg/embeddings" | ||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||
) | ||
|
||
// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! | ||
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. | ||
|
||
// EmbedderSpec defines the desired state of Embedder | ||
type EmbedderSpec struct { | ||
// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster | ||
// Important: Run "make" to regenerate code after modifying this file | ||
|
||
// Name of the Embedding service | ||
DisplayName string `json:"name,omitempty"` | ||
|
||
// ServiceType indicates the source type of embedding service | ||
ServiceType embeddings.EmbeddingType `json:"serviceType,omitempty"` | ||
|
||
// URL keeps the URL of the embedding service (Must have) | ||
URL string `json:"url,omitempty"` | ||
|
||
// Auth keeps the authentication credentials when access embedding service | ||
// keeps in k8s secret | ||
Auth string `json:"auth,omitempty"` | ||
} | ||
|
||
// EmbeddingsStatus defines the observed state of Embedder | ||
type EmbedderStatus struct { | ||
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster | ||
// Important: Run "make" to regenerate code after modifying this file | ||
// ConditionedStatus is the current status | ||
ConditionedStatus `json:",inline"` | ||
} | ||
|
||
//+kubebuilder:object:root=true | ||
//+kubebuilder:subresource:status | ||
|
||
// Embedder is the Schema for the embeddings API | ||
type Embedder struct { | ||
metav1.TypeMeta `json:",inline"` | ||
metav1.ObjectMeta `json:"metadata,omitempty"` | ||
|
||
Spec EmbedderSpec `json:"spec,omitempty"` | ||
Status EmbedderStatus `json:"status,omitempty"` | ||
} | ||
|
||
//+kubebuilder:object:root=true | ||
|
||
// EmbedderList contains a list of Embedder | ||
type EmbedderList struct { | ||
metav1.TypeMeta `json:",inline"` | ||
metav1.ListMeta `json:"metadata,omitempty"` | ||
Items []Embedder `json:"items"` | ||
} | ||
|
||
func init() { | ||
SchemeBuilder.Register(&Embedder{}, &EmbedderList{}) | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
99 changes: 99 additions & 0 deletions
99
charts/arcadia/crds/arcadia.kubeagi.k8s.com.cn_embedders.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
--- | ||
apiVersion: apiextensions.k8s.io/v1 | ||
kind: CustomResourceDefinition | ||
metadata: | ||
annotations: | ||
controller-gen.kubebuilder.io/version: v0.9.2 | ||
creationTimestamp: null | ||
name: embedders.arcadia.kubeagi.k8s.com.cn | ||
spec: | ||
group: arcadia.kubeagi.k8s.com.cn | ||
names: | ||
kind: Embedder | ||
listKind: EmbedderList | ||
plural: embedders | ||
singular: embedder | ||
scope: Namespaced | ||
versions: | ||
- name: v1alpha1 | ||
schema: | ||
openAPIV3Schema: | ||
description: Embedder is the Schema for the embedders 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: EmbedderSpec defines the desired state of embedder. | ||
properties: | ||
auth: | ||
description: Auth keeps the authentication credentials when access | ||
embedder, keeps in k8s secret. | ||
type: string | ||
displayName: | ||
type: string | ||
type: | ||
description: Type defines the type of embedder. | ||
type: string | ||
url: | ||
description: URL keeps the URL of the embedder service(Must required) | ||
type: string | ||
required: | ||
- type | ||
type: object | ||
status: | ||
description: EmbedderStatus defines the observed state of embedder. | ||
properties: | ||
conditions: | ||
description: Conditions of the resource. | ||
items: | ||
description: A Condition that may apply to a resource. | ||
properties: | ||
lastSuccessfulTime: | ||
description: LastSuccessfulTime is repository Last Successful | ||
Update Time | ||
format: date-time | ||
type: string | ||
lastTransitionTime: | ||
description: LastTransitionTime is the last time this condition | ||
transitioned from one status to another. | ||
format: date-time | ||
type: string | ||
message: | ||
description: A Message containing details about this condition's | ||
last transition from one status to another, if any. | ||
type: string | ||
reason: | ||
description: A Reason for this condition's last transition from | ||
one status to another. | ||
type: string | ||
status: | ||
description: Status of this condition; is it currently True, | ||
False, or Unknown | ||
type: string | ||
type: | ||
description: Type of this condition. At most one of each condition | ||
type may apply to a resource at any point in time. | ||
type: string | ||
required: | ||
- lastTransitionTime | ||
- reason | ||
- status | ||
- type | ||
type: object | ||
type: array | ||
type: object | ||
type: object | ||
served: true | ||
storage: true | ||
subresources: | ||
status: {} |
Oops, something went wrong.