diff --git a/operators/ack-bedrockagent-controller/0.0.2/bundle.Dockerfile b/operators/ack-bedrockagent-controller/0.0.2/bundle.Dockerfile new file mode 100644 index 00000000000..935d07e9df8 --- /dev/null +++ b/operators/ack-bedrockagent-controller/0.0.2/bundle.Dockerfile @@ -0,0 +1,21 @@ +FROM scratch + +# Core bundle labels. +LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 +LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ +LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ +LABEL operators.operatorframework.io.bundle.package.v1=ack-bedrockagent-controller +LABEL operators.operatorframework.io.bundle.channels.v1=alpha +LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.28.0 +LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 +LABEL operators.operatorframework.io.metrics.project_layout=unknown + +# Labels for testing. +LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 +LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ + +# Copy files to locations specified by labels. +COPY bundle/manifests /manifests/ +COPY bundle/metadata /metadata/ +COPY bundle/tests/scorecard /tests/scorecard/ diff --git a/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-controller.clusterserviceversion.yaml b/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-controller.clusterserviceversion.yaml new file mode 100644 index 00000000000..4d207bbf1f8 --- /dev/null +++ b/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-controller.clusterserviceversion.yaml @@ -0,0 +1,272 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "bedrockagent.services.k8s.aws/v1alpha1", + "kind": "Agent", + "metadata": { + "name": "example" + }, + "spec": {} + } + ] + capabilities: Basic Install + categories: Cloud Provider + certified: "false" + containerImage: public.ecr.aws/aws-controllers-k8s/bedrockagent-controller:0.0.2 + createdAt: "2025-05-30T19:47:29Z" + description: AWS Bedrock Agent controller is a service controller for managing + Bedrock Agent resources in Kubernetes + operatorframework.io/suggested-namespace: ack-system + operators.operatorframework.io/builder: operator-sdk-v1.28.0 + operators.operatorframework.io/project_layout: unknown + repository: https://github.com/aws-controllers-k8s + support: Community + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/os.linux: supported + name: ack-bedrockagent-controller.v0.0.2 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Agent represents the state of an AWS bedrockagent Agent resource. + displayName: Agent + kind: Agent + name: agents.bedrockagent.services.k8s.aws + version: v1alpha1 + description: |- + Manage Amazon Bedrock Agent resources in AWS from within your Kubernetes cluster. + + **About Amazon Bedrock Agent** + + Amazon Bedrock is a fully managed service that makes high-performing foundation models (FMs) from leading AI companies and Amazon available for your use through a unified API. You can choose from a wide range of foundation models to find the model that is best suited for your use case. Amazon Bedrock also offers a broad set of capabilities to build generative AI applications with security, privacy, and responsible AI. Using Amazon Bedrock, you can easily experiment with and evaluate top foundation models for your use cases, privately customize them with your data using techniques such as fine-tuning and Retrieval Augmented Generation (RAG), and build agents that execute tasks using your enterprise systems and data sources. + + **About the AWS Controllers for Kubernetes** + + This controller is a component of the [AWS Controller for Kubernetes](https://github.com/aws/aws-controllers-k8s) project. This project is currently in **developer preview**. + + **Pre-Installation Steps** + + Please follow the following link: [Red Hat OpenShift](https://aws-controllers-k8s.github.io/community/docs/user-docs/openshift/) + displayName: AWS Controllers for Kubernetes - Amazon Bedrock Agent + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzA0IDE4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzA0IDE4MjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNTJGM0U7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRjk5MDA7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04Ni40LDY2LjRjMCwzLjcsMC40LDYuNywxLjEsOC45YzAuOCwyLjIsMS44LDQuNiwzLjIsNy4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi4zYzAsMS0wLjYsMi0xLjksM2wtNi4zLDQuMiAgIGMtMC45LDAuNi0xLjgsMC45LTIuNiwwLjljLTEsMC0yLTAuNS0zLTEuNEM3Ni4yLDkwLDc1LDg4LjQsNzQsODYuOGMtMS0xLjctMi0zLjYtMy4xLTUuOWMtNy44LDkuMi0xNy42LDEzLjgtMjkuNCwxMy44ICAgYy04LjQsMC0xNS4xLTIuNC0yMC03LjJjLTQuOS00LjgtNy40LTExLjItNy40LTE5LjJjMC04LjUsMy0xNS40LDkuMS0yMC42YzYuMS01LjIsMTQuMi03LjgsMjQuNS03LjhjMy40LDAsNi45LDAuMywxMC42LDAuOCAgIGMzLjcsMC41LDcuNSwxLjMsMTEuNSwyLjJ2LTcuM2MwLTcuNi0xLjYtMTIuOS00LjctMTZjLTMuMi0zLjEtOC42LTQuNi0xNi4zLTQuNmMtMy41LDAtNy4xLDAuNC0xMC44LDEuM2MtMy43LDAuOS03LjMsMi0xMC44LDMuNCAgIGMtMS42LDAuNy0yLjgsMS4xLTMuNSwxLjNjLTAuNywwLjItMS4yLDAuMy0xLjYsMC4zYy0xLjQsMC0yLjEtMS0yLjEtMy4xdi00LjljMC0xLjYsMC4yLTIuOCwwLjctMy41YzAuNS0wLjcsMS40LTEuNCwyLjgtMi4xICAgYzMuNS0xLjgsNy43LTMuMywxMi42LTQuNWM0LjktMS4zLDEwLjEtMS45LDE1LjYtMS45YzExLjksMCwyMC42LDIuNywyNi4yLDguMWM1LjUsNS40LDguMywxMy42LDguMywyNC42VjY2LjR6IE00NS44LDgxLjYgICBjMy4zLDAsNi43LTAuNiwxMC4zLTEuOGMzLjYtMS4yLDYuOC0zLjQsOS41LTYuNGMxLjYtMS45LDIuOC00LDMuNC02LjRjMC42LTIuNCwxLTUuMywxLTguN3YtNC4yYy0yLjktMC43LTYtMS4zLTkuMi0xLjcgICBjLTMuMi0wLjQtNi4zLTAuNi05LjQtMC42Yy02LjcsMC0xMS42LDEuMy0xNC45LDRjLTMuMywyLjctNC45LDYuNS00LjksMTEuNWMwLDQuNywxLjIsOC4yLDMuNywxMC42ICAgQzM3LjcsODAuNCw0MS4yLDgxLjYsNDUuOCw4MS42eiBNMTI2LjEsOTIuNGMtMS44LDAtMy0wLjMtMy44LTFjLTAuOC0wLjYtMS41LTItMi4xLTMuOUw5Ni43LDEwLjJjLTAuNi0yLTAuOS0zLjMtMC45LTQgICBjMC0xLjYsMC44LTIuNSwyLjQtMi41aDkuOGMxLjksMCwzLjIsMC4zLDMuOSwxYzAuOCwwLjYsMS40LDIsMiwzLjlsMTYuOCw2Ni4ybDE1LjYtNjYuMmMwLjUtMiwxLjEtMy4zLDEuOS0zLjljMC44LTAuNiwyLjItMSw0LTEgICBoOGMxLjksMCwzLjIsMC4zLDQsMWMwLjgsMC42LDEuNSwyLDEuOSwzLjlsMTUuOCw2N2wxNy4zLTY3YzAuNi0yLDEuMy0zLjMsMi0zLjljMC44LTAuNiwyLjEtMSwzLjktMWg5LjNjMS42LDAsMi41LDAuOCwyLjUsMi41ICAgYzAsMC41LTAuMSwxLTAuMiwxLjZjLTAuMSwwLjYtMC4zLDEuNC0wLjcsMi41bC0yNC4xLDc3LjNjLTAuNiwyLTEuMywzLjMtMi4xLDMuOWMtMC44LDAuNi0yLjEsMS0zLjgsMWgtOC42Yy0xLjksMC0zLjItMC4zLTQtMSAgIGMtMC44LTAuNy0xLjUtMi0xLjktNEwxNTYsMjNsLTE1LjQsNjQuNGMtMC41LDItMS4xLDMuMy0xLjksNGMtMC44LDAuNy0yLjIsMS00LDFIMTI2LjF6IE0yNTQuNiw5NS4xYy01LjIsMC0xMC40LTAuNi0xNS40LTEuOCAgIGMtNS0xLjItOC45LTIuNS0xMS41LTRjLTEuNi0wLjktMi43LTEuOS0zLjEtMi44Yy0wLjQtMC45LTAuNi0xLjktMC42LTIuOHYtNS4xYzAtMi4xLDAuOC0zLjEsMi4zLTMuMWMwLjYsMCwxLjIsMC4xLDEuOCwwLjMgICBjMC42LDAuMiwxLjUsMC42LDIuNSwxYzMuNCwxLjUsNy4xLDIuNywxMSwzLjVjNCwwLjgsNy45LDEuMiwxMS45LDEuMmM2LjMsMCwxMS4yLTEuMSwxNC42LTMuM2MzLjQtMi4yLDUuMi01LjQsNS4yLTkuNSAgIGMwLTIuOC0wLjktNS4xLTIuNy03Yy0xLjgtMS45LTUuMi0zLjYtMTAuMS01LjJMMjQ2LDUyYy03LjMtMi4zLTEyLjctNS43LTE2LTEwLjJjLTMuMy00LjQtNS05LjMtNS0xNC41YzAtNC4yLDAuOS03LjksMi43LTExLjEgICBjMS44LTMuMiw0LjItNiw3LjItOC4yYzMtMi4zLDYuNC00LDEwLjQtNS4yYzQtMS4yLDguMi0xLjcsMTIuNi0xLjdjMi4yLDAsNC41LDAuMSw2LjcsMC40YzIuMywwLjMsNC40LDAuNyw2LjUsMS4xICAgYzIsMC41LDMuOSwxLDUuNywxLjZjMS44LDAuNiwzLjIsMS4yLDQuMiwxLjhjMS40LDAuOCwyLjQsMS42LDMsMi41YzAuNiwwLjgsMC45LDEuOSwwLjksMy4zdjQuN2MwLDIuMS0wLjgsMy4yLTIuMywzLjIgICBjLTAuOCwwLTIuMS0wLjQtMy44LTEuMmMtNS43LTIuNi0xMi4xLTMuOS0xOS4yLTMuOWMtNS43LDAtMTAuMiwwLjktMTMuMywyLjhjLTMuMSwxLjktNC43LDQuOC00LjcsOC45YzAsMi44LDEsNS4yLDMsNy4xICAgYzIsMS45LDUuNywzLjgsMTEsNS41bDE0LjIsNC41YzcuMiwyLjMsMTIuNCw1LjUsMTUuNSw5LjZjMy4xLDQuMSw0LjYsOC44LDQuNiwxNGMwLDQuMy0wLjksOC4yLTIuNiwxMS42ICAgYy0xLjgsMy40LTQuMiw2LjQtNy4zLDguOGMtMy4xLDIuNS02LjgsNC4zLTExLjEsNS42QzI2NC40LDk0LjQsMjU5LjcsOTUuMSwyNTQuNiw5NS4xeiIvPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI3My41LDE0My43Yy0zMi45LDI0LjMtODAuNywzNy4yLTEyMS44LDM3LjJjLTU3LjYsMC0xMDkuNS0yMS4zLTE0OC43LTU2LjdjLTMuMS0yLjgtMC4zLTYuNiwzLjQtNC40ICAgIGM0Mi40LDI0LjYsOTQuNywzOS41LDE0OC44LDM5LjVjMzYuNSwwLDc2LjYtNy42LDExMy41LTIzLjJDMjc0LjIsMTMzLjYsMjc4LjksMTM5LjcsMjczLjUsMTQzLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI4Ny4yLDEyOC4xYy00LjItNS40LTI3LjgtMi42LTM4LjUtMS4zYy0zLjIsMC40LTMuNy0yLjQtMC44LTQuNWMxOC44LTEzLjIsNDkuNy05LjQsNTMuMy01ICAgIGMzLjYsNC41LTEsMzUuNC0xOC42LDUwLjJjLTIuNywyLjMtNS4zLDEuMS00LjEtMS45QzI4Mi41LDE1NS43LDI5MS40LDEzMy40LDI4Ny4yLDEyOC4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - configmaps + - secrets + verbs: + - get + - list + - patch + - watch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - bedrockagent.services.k8s.aws + resources: + - agents + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - bedrockagent.services.k8s.aws + resources: + - agents/status + verbs: + - get + - patch + - update + - apiGroups: + - iam.services.k8s.aws + resources: + - roles + - roles/status + verbs: + - get + - list + - apiGroups: + - services.k8s.aws + resources: + - adoptedresources + - fieldexports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - services.k8s.aws + resources: + - adoptedresources/status + - fieldexports/status + verbs: + - get + - patch + - update + serviceAccountName: ack-bedrockagent-controller + deployments: + - label: + app.kubernetes.io/name: ack-bedrockagent-controller + app.kubernetes.io/part-of: ack-system + name: ack-bedrockagent-controller + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: ack-bedrockagent-controller + strategy: {} + template: + metadata: + labels: + app.kubernetes.io/name: ack-bedrockagent-controller + spec: + containers: + - args: + - --aws-region + - $(AWS_REGION) + - --aws-endpoint-url + - $(AWS_ENDPOINT_URL) + - --enable-development-logging=$(ACK_ENABLE_DEVELOPMENT_LOGGING) + - --log-level + - $(ACK_LOG_LEVEL) + - --resource-tags + - $(ACK_RESOURCE_TAGS) + - --watch-namespace + - $(ACK_WATCH_NAMESPACE) + - --enable-leader-election=$(ENABLE_LEADER_ELECTION) + - --leader-election-namespace + - $(LEADER_ELECTION_NAMESPACE) + - --reconcile-default-max-concurrent-syncs + - $(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS) + - --feature-gates + - $(FEATURE_GATES) + command: + - ./bin/controller + env: + - name: ACK_SYSTEM_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + envFrom: + - configMapRef: + name: ack-bedrockagent-user-config + optional: false + - secretRef: + name: ack-bedrockagent-user-secrets + optional: true + image: public.ecr.aws/aws-controllers-k8s/bedrockagent-controller:0.0.2 + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: controller + ports: + - containerPort: 8080 + name: http + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 100m + memory: 300Mi + requests: + cpu: 100m + memory: 200Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + runAsNonRoot: true + dnsPolicy: ClusterFirst + securityContext: + seccompProfile: + type: RuntimeDefault + serviceAccountName: ack-bedrockagent-controller + terminationGracePeriodSeconds: 10 + permissions: + - rules: + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + serviceAccountName: ack-bedrockagent-controller + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - bedrockagent + - aws + - amazon + - ack + links: + - name: AWS Controllers for Kubernetes + url: https://github.com/aws-controllers-k8s/community + - name: Documentation + url: https://aws-controllers-k8s.github.io/community/ + - name: Amazon Bedrock Agent Developer Resources + url: https://aws.amazon.com/bedrock/resources/ + maintainers: + - email: ack-maintainers@amazon.com + name: bedrock-agent maintainer team + maturity: alpha + provider: + name: Amazon, Inc. + url: https://aws.amazon.com + version: 0.0.2 diff --git a/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-metrics-service_v1_service.yaml b/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..80ce1bab2b4 --- /dev/null +++ b/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-metrics-service_v1_service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + name: ack-bedrockagent-metrics-service +spec: + ports: + - name: metricsport + port: 8080 + protocol: TCP + targetPort: http + selector: + app.kubernetes.io/name: ack-bedrockagent-controller + type: NodePort +status: + loadBalancer: {} diff --git a/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-reader_rbac.authorization.k8s.io_v1_role.yaml b/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-reader_rbac.authorization.k8s.io_v1_role.yaml new file mode 100644 index 00000000000..c271687b92c --- /dev/null +++ b/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-reader_rbac.authorization.k8s.io_v1_role.yaml @@ -0,0 +1,14 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + creationTimestamp: null + name: ack-bedrockagent-reader +rules: +- apiGroups: + - bedrockagent.services.k8s.aws + resources: + - agents + verbs: + - get + - list + - watch diff --git a/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-writer_rbac.authorization.k8s.io_v1_role.yaml b/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-writer_rbac.authorization.k8s.io_v1_role.yaml new file mode 100644 index 00000000000..d3eb7c30f3e --- /dev/null +++ b/operators/ack-bedrockagent-controller/0.0.2/manifests/ack-bedrockagent-writer_rbac.authorization.k8s.io_v1_role.yaml @@ -0,0 +1,26 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + creationTimestamp: null + name: ack-bedrockagent-writer +rules: +- apiGroups: + - bedrockagent.services.k8s.aws + resources: + - agents + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - bedrockagent.services.k8s.aws + resources: + - agents + verbs: + - get + - patch + - update diff --git a/operators/ack-bedrockagent-controller/0.0.2/manifests/bedrockagent.services.k8s.aws_agents.yaml b/operators/ack-bedrockagent-controller/0.0.2/manifests/bedrockagent.services.k8s.aws_agents.yaml new file mode 100644 index 00000000000..9c5d10e354d --- /dev/null +++ b/operators/ack-bedrockagent-controller/0.0.2/manifests/bedrockagent.services.k8s.aws_agents.yaml @@ -0,0 +1,386 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.16.2 + creationTimestamp: null + name: agents.bedrockagent.services.k8s.aws +spec: + group: bedrockagent.services.k8s.aws + names: + kind: Agent + listKind: AgentList + plural: agents + singular: agent + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Agent is the Schema for the Agents 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: |- + AgentSpec defines the desired state of Agent. + + Contains details about an agent. + properties: + agentCollaboration: + description: The agent's collaboration role. + type: string + agentName: + description: |- + A name for the agent that you create. + + Regex Pattern: `^([0-9a-zA-Z][_-]?){1,100}$` + type: string + agentResourceRoleARN: + description: |- + The Amazon Resource Name (ARN) of the IAM role with permissions to invoke + API operations on the agent. + + Regex Pattern: `^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+$` + type: string + agentResourceRoleRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + namespace: + type: string + type: object + type: object + customOrchestration: + description: Contains details of the custom orchestration configured + for the agent. + properties: + executor: + description: |- + Contains details about the Lambda function containing the orchestration logic + carried out upon invoking the custom orchestration. + properties: + lambda: + type: string + type: object + type: object + customerEncryptionKeyARN: + description: |- + The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent. + + Regex Pattern: `^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$` + type: string + description: + description: A description of the agent. + type: string + foundationModel: + description: |- + The identifier for the model that you want to be used for orchestration by + the agent you create. + + The modelId to provide depends on the type of model or throughput that you + use: + + * If you use a base model, specify the model ID or its ARN. For a list + of model IDs for base models, see Amazon Bedrock base model IDs (on-demand + throughput) (https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns) + in the Amazon Bedrock User Guide. + + * If you use an inference profile, specify the inference profile ID or + its ARN. For a list of inference profile IDs, see Supported Regions and + models for cross-region inference (https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html) + in the Amazon Bedrock User Guide. + + * If you use a provisioned model, specify the ARN of the Provisioned Throughput. + For more information, see Run inference using a Provisioned Throughput + (https://docs.aws.amazon.com/bedrock/latest/userguide/prov-thru-use.html) + in the Amazon Bedrock User Guide. + + * If you use a custom model, first purchase Provisioned Throughput for + it. Then specify the ARN of the resulting provisioned model. For more + information, see Use a custom model in Amazon Bedrock (https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html) + in the Amazon Bedrock User Guide. + + * If you use an imported model (https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html), + specify the ARN of the imported model. You can get the model ARN from + a successful call to CreateModelImportJob (https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelImportJob.html) + or from the Imported models page in the Amazon Bedrock console. + + Regex Pattern: `^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$` + type: string + guardrailConfiguration: + description: The unique Guardrail configuration assigned to the agent + when it is created. + properties: + guardrailIdentifier: + type: string + guardrailVersion: + type: string + type: object + idleSessionTTLInSeconds: + description: |- + The number of seconds for which Amazon Bedrock keeps information about a + user's conversation with the agent. + + A user interaction remains active for the amount of time specified. If no + conversation occurs during this time, the session expires and Amazon Bedrock + deletes any data provided before the timeout. + format: int64 + type: integer + instruction: + description: |- + Instructions that tell the agent what it should do and how it should interact + with users. + type: string + memoryConfiguration: + description: Contains the details of the memory configured for the + agent. + properties: + enabledMemoryTypes: + items: + type: string + type: array + sessionSummaryConfiguration: + description: Configuration for SESSION_SUMMARY memory type enabled + for the agent. + properties: + maxRecentSessions: + format: int64 + type: integer + type: object + storageDays: + format: int64 + type: integer + type: object + orchestrationType: + description: |- + Specifies the type of orchestration strategy for the agent. This is set to + DEFAULT orchestration type, by default. + type: string + promptOverrideConfiguration: + description: |- + Contains configurations to override prompts in different parts of an agent + sequence. For more information, see Advanced prompts (https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). + properties: + overrideLambda: + type: string + promptConfigurations: + items: + description: |- + Contains configurations to override a prompt template in one part of an agent + sequence. For more information, see Advanced prompts (https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html). + properties: + basePromptTemplate: + type: string + foundationModel: + type: string + inferenceConfiguration: + description: |- + Contains inference parameters to use when the agent invokes a foundation + model in the part of the agent sequence defined by the promptType. For more + information, see Inference parameters for foundation models (https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). + properties: + maximumLength: + format: int64 + type: integer + stopSequences: + items: + type: string + type: array + temperature: + type: number + topK: + format: int64 + type: integer + topP: + type: number + type: object + parserMode: + type: string + promptCreationMode: + type: string + promptState: + type: string + promptType: + type: string + type: object + type: array + type: object + tags: + additionalProperties: + type: string + description: |- + An object containing key-value pairs that define the tags to attach to the + resource. + type: object + required: + - agentName + type: object + status: + description: AgentStatus defines the observed state of Agent + properties: + ackResourceMetadata: + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, + constructed ARN for the resource + properties: + arn: + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + https://github.com/aws/aws-controllers-k8s/issues/270 + type: string + ownerAccountID: + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. + type: string + region: + description: Region is the AWS region in which the resource exists + or will exist. + type: string + required: + - ownerAccountID + - region + type: object + agentID: + description: |- + The unique identifier of the agent. + + Regex Pattern: `^[0-9a-zA-Z]{10}$` + type: string + agentStatus: + description: |- + The status of the agent and whether it is ready for use. The following statuses + are possible: + + * CREATING – The agent is being created. + + * PREPARING – The agent is being prepared. + + * PREPARED – The agent is prepared and ready to be invoked. + + * NOT_PREPARED – The agent has been created but not yet prepared. + + * FAILED – The agent API operation failed. + + * UPDATING – The agent is being updated. + + * DELETING – The agent is being deleted. + type: string + agentVersion: + description: |- + The version of the agent. + + Regex Pattern: `^DRAFT$` + type: string + clientToken: + description: |- + A unique, case-sensitive identifier to ensure that the API request completes + no more than one time. If this token matches a previous request, Amazon Bedrock + ignores the request, but does not return an error. For more information, + see Ensuring idempotency (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). + + Regex Pattern: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,256}$` + type: string + conditions: + description: |- + All CRs managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource + items: + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type is the type of the Condition + type: string + required: + - status + - type + type: object + type: array + createdAt: + description: The time at which the agent was created. + format: date-time + type: string + failureReasons: + description: Contains reasons that the agent-related API that you + invoked failed. + items: + type: string + type: array + preparedAt: + description: The time at which the agent was last prepared. + format: date-time + type: string + recommendedActions: + description: |- + Contains recommended actions to take for the agent-related API that you invoked + to succeed. + items: + type: string + type: array + updatedAt: + description: The time at which the agent was last updated. + format: date-time + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ack-bedrockagent-controller/0.0.2/metadata/annotations.yaml b/operators/ack-bedrockagent-controller/0.0.2/metadata/annotations.yaml new file mode 100644 index 00000000000..a38f33f9e4f --- /dev/null +++ b/operators/ack-bedrockagent-controller/0.0.2/metadata/annotations.yaml @@ -0,0 +1,15 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: ack-bedrockagent-controller + operators.operatorframework.io.bundle.channels.v1: alpha + operators.operatorframework.io.bundle.channel.default.v1: alpha + operators.operatorframework.io.metrics.builder: operator-sdk-v1.28.0 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: unknown + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ diff --git a/operators/ack-bedrockagent-controller/0.0.2/tests/scorecard/config.yaml b/operators/ack-bedrockagent-controller/0.0.2/tests/scorecard/config.yaml new file mode 100644 index 00000000000..382ddefd156 --- /dev/null +++ b/operators/ack-bedrockagent-controller/0.0.2/tests/scorecard/config.yaml @@ -0,0 +1,50 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: + - entrypoint: + - scorecard-test + - basic-check-spec + image: quay.io/operator-framework/scorecard-test:v1.7.1 + labels: + suite: basic + test: basic-check-spec-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.7.1 + labels: + suite: olm + test: olm-bundle-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.7.1 + labels: + suite: olm + test: olm-crds-have-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.7.1 + labels: + suite: olm + test: olm-spec-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {}