You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2018/10/31 11:36:30 UTC
ignite git commit: IGNITE-9010: Move web-console build to dedicated
root directory - Fixes #4528.
Repository: ignite
Updated Branches:
refs/heads/master 0e7dc7196 -> a1b7239d6
IGNITE-9010: Move web-console build to dedicated root directory - Fixes #4528.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a1b7239d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a1b7239d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a1b7239d
Branch: refs/heads/master
Commit: a1b7239d60f1e5fbf19e4fc9bb6db425e27ca2d0
Parents: 0e7dc71
Author: Ilya Murchenko <il...@outlook.com>
Authored: Wed Oct 31 18:36:22 2018 +0700
Committer: Andrey Novikov <an...@gridgain.com>
Committed: Wed Oct 31 18:36:22 2018 +0700
----------------------------------------------------------------------
docker/web-console/standalone/Dockerfile | 85 ++++++++++++++++++++
docker/web-console/standalone/README.txt | 35 ++++++++
.../web-console/standalone/docker-entrypoint.sh | 23 ++++++
docker/web-console/standalone/nginx/nginx.conf | 55 +++++++++++++
.../standalone/nginx/web-console.conf | 62 ++++++++++++++
modules/web-console/DEVNOTES.txt | 13 ---
.../web-console/docker/standalone/Dockerfile | 76 -----------------
.../docker/standalone/docker-entrypoint.sh | 23 ------
.../docker/standalone/nginx/nginx.conf | 55 -------------
.../docker/standalone/nginx/web-console.conf | 62 --------------
modules/web-console/pom.xml | 38 ---------
11 files changed, 260 insertions(+), 267 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/docker/web-console/standalone/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/web-console/standalone/Dockerfile b/docker/web-console/standalone/Dockerfile
new file mode 100644
index 0000000..dfcb188
--- /dev/null
+++ b/docker/web-console/standalone/Dockerfile
@@ -0,0 +1,85 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+
+#~~~~~~~~~~~~~~~~~~#
+# Frontend build #
+#~~~~~~~~~~~~~~~~~~#
+FROM node:8-slim as frontend-build
+
+ENV NPM_CONFIG_LOGLEVEL error
+
+WORKDIR /opt/web-console
+
+# Install node modules and build sources
+COPY frontend frontend
+RUN cd frontend && \
+ npm install --no-optional && \
+ npm run build
+
+
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
+# Web Console Standalone assemble #
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
+FROM node:8-slim
+
+ENV NPM_CONFIG_LOGLEVEL error
+
+# Install global node packages
+RUN npm install -g pm2
+
+# Update software sources and install missing applications
+RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 && \
+ echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" > /etc/apt/sources.list.d/mongodb-org-3.4.list && \
+ apt update && \
+ apt install -y --no-install-recommends \
+ nginx-light \
+ mongodb-org-server \
+ dos2unix && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
+
+WORKDIR /opt/web-console
+
+# Install node modules for backend
+COPY backend/package*.json backend/
+RUN cd backend && \
+ npm install --no-optional --production
+
+# Copy and build sources
+COPY backend backend
+RUN cd backend && \
+ npm run build
+
+# Copy Ignite Web Agent module package
+COPY ignite-web-agent-*.zip backend/agent_dists
+
+# Copy previously built frontend
+COPY --from=frontend-build /opt/web-console/frontend/build static
+
+# Copy and fix entrypoint script
+COPY docker-entrypoint.sh docker-entrypoint.sh
+RUN chmod +x docker-entrypoint.sh \
+ && dos2unix docker-entrypoint.sh
+
+# Copy nginx configuration
+COPY nginx/* /etc/nginx/
+
+EXPOSE 80
+
+ENTRYPOINT ["/opt/web-console/docker-entrypoint.sh"]
+
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/docker/web-console/standalone/README.txt
----------------------------------------------------------------------
diff --git a/docker/web-console/standalone/README.txt b/docker/web-console/standalone/README.txt
new file mode 100644
index 0000000..c97e792
--- /dev/null
+++ b/docker/web-console/standalone/README.txt
@@ -0,0 +1,35 @@
+Apache Ignite Web Console Standalone Docker module
+==================================================
+Apache Ignite Web Console Standalone Docker module provides Dockerfile and accompanying files
+for building docker image of Web Console.
+
+
+Ignite Web Console Standalone Docker Image Build Instructions
+=============================================================
+1) Build ignite-web-console module
+
+ mvn clean install -P web-console -DskipTests -T 2C -pl :ignite-web-console -am
+
+2) Copy ignite-web-agent-<version>.zip from 'modules/web-console/web-agent/target'
+ to 'docker/web-console/standalone' directory
+
+ cp -rf modules/web-console/web-agent/target/ignite-web-agent-*.zip docker/web-console/standalone
+
+3) Go to Apache Ignite Web Console Docker module directory and copy Apache
+ Ignite Web Console's frontend and backend directory
+
+ cd docker/web-console/standalone
+ cp -rf ../../../modules/web-console/backend ./
+ cp -rf ../../../modules/web-console/frontend ./
+
+4) Build docker image
+
+ docker build . -t apacheignite/web-console-standalone:[:<version>]
+
+ Prepared image will be available in local docker registry (can be seen
+ issuing `docker images` command)
+
+5) Clean up
+
+ rm -rf backend frontend ignite-web-agent*
+
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/docker/web-console/standalone/docker-entrypoint.sh
----------------------------------------------------------------------
diff --git a/docker/web-console/standalone/docker-entrypoint.sh b/docker/web-console/standalone/docker-entrypoint.sh
new file mode 100644
index 0000000..6757de6
--- /dev/null
+++ b/docker/web-console/standalone/docker-entrypoint.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+/usr/bin/mongod --fork --config=/etc/mongod.conf
+
+service nginx start
+
+cd backend && pm2 start ./index.js --no-daemon
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/docker/web-console/standalone/nginx/nginx.conf
----------------------------------------------------------------------
diff --git a/docker/web-console/standalone/nginx/nginx.conf b/docker/web-console/standalone/nginx/nginx.conf
new file mode 100644
index 0000000..dbc79d7
--- /dev/null
+++ b/docker/web-console/standalone/nginx/nginx.conf
@@ -0,0 +1,55 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+user www-data;
+worker_processes 1;
+
+error_log /var/log/nginx/error.log warn;
+pid /var/run/nginx.pid;
+
+events {
+ worker_connections 128;
+}
+
+http {
+ server_tokens off;
+ sendfile on;
+ tcp_nopush on;
+
+ keepalive_timeout 60;
+ tcp_nodelay on;
+
+ client_max_body_size 100m;
+
+ #access log
+ log_format main '$http_host $remote_addr - $remote_user [$time_local] '
+ '"$request" $status $bytes_sent '
+ '"$http_referer" "$http_user_agent" '
+ '"$gzip_ratio"';
+
+ include /etc/nginx/mime.types;
+ default_type application/octet-stream;
+ gzip on;
+ gzip_disable "msie6";
+ gzip_types text/plain text/css text/xml text/javascript application/json application/x-javascript application/xml application/xml+rss application/javascript;
+ gzip_vary on;
+ gzip_comp_level 5;
+
+ access_log /var/log/nginx/access.log main;
+ #conf.d
+ include web-console.conf ;
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/docker/web-console/standalone/nginx/web-console.conf
----------------------------------------------------------------------
diff --git a/docker/web-console/standalone/nginx/web-console.conf b/docker/web-console/standalone/nginx/web-console.conf
new file mode 100644
index 0000000..caf171e
--- /dev/null
+++ b/docker/web-console/standalone/nginx/web-console.conf
@@ -0,0 +1,62 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+
+upstream backend-api {
+ server localhost:3000;
+}
+
+server {
+ listen 80;
+ server_name _;
+
+ set $ignite_console_dir /opt/web-console/static;
+
+ root $ignite_console_dir;
+
+ error_page 500 502 503 504 /50x.html;
+
+ location / {
+ try_files $uri /index.html = 404;
+ }
+
+ location /api/v1 {
+ proxy_set_header Host $http_host;
+ proxy_pass http://backend-api;
+ }
+
+ location /socket.io {
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_http_version 1.1;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $host;
+ proxy_pass http://backend-api;
+ }
+
+ location /agents {
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ proxy_http_version 1.1;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $host;
+ proxy_pass http://backend-api;
+ }
+
+ location = /50x.html {
+ root $ignite_console_dir/error_page;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/modules/web-console/DEVNOTES.txt
----------------------------------------------------------------------
diff --git a/modules/web-console/DEVNOTES.txt b/modules/web-console/DEVNOTES.txt
index a06608d..e7c5eb3 100644
--- a/modules/web-console/DEVNOTES.txt
+++ b/modules/web-console/DEVNOTES.txt
@@ -51,19 +51,6 @@ To build docker images from sources run following command in Ignite project root
Prepared image can be listed with `docker images` command.
-Ignite Web Console Standalone Docker Image Build Manual Instructions
-====================================================================
-Install Docker (version >=17.05) using instructions from https://www.docker.com/community-edition.
-
-1. Build Apache Ignite Web Agent archive as described in `modules/web-console/web-agent/README.txt`.
-2. Goto Web Console's module directory: `cd modules/web-console`
-3. Build docker image:
-
-"docker build . -t apacheignite/web-console-standalone[:<version>] -f docker/standalone/Dockerfile"
-
-Prepared image can be listed in `docker images` command output.
-
-
Ignite Web Console Backend Docker Image Build Manual Instructions
====================================================================
Install Docker (version >=17.05) using instructions from https://www.docker.com/community-edition.
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/modules/web-console/docker/standalone/Dockerfile
----------------------------------------------------------------------
diff --git a/modules/web-console/docker/standalone/Dockerfile b/modules/web-console/docker/standalone/Dockerfile
deleted file mode 100644
index 9b00734..0000000
--- a/modules/web-console/docker/standalone/Dockerfile
+++ /dev/null
@@ -1,76 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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 node:8-slim as frontend-build
-
-ENV NPM_CONFIG_LOGLEVEL error
-
-WORKDIR /opt/web-console
-
-# Install node modules for frontend.
-COPY frontend/package*.json frontend/
-RUN (cd frontend && npm install --no-optional)
-
-# Copy source.
-COPY frontend frontend
-
-RUN (cd frontend && npm run build)
-
-FROM node:8-slim
-
-ENV NPM_CONFIG_LOGLEVEL error
-
-# Update package list & install.
-RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 \
- && echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" | tee /etc/apt/sources.list.d/mongodb-org-3.4.list
-
-# Update package list & install.
-RUN apt-get update \
- && apt-get install -y nginx-light mongodb-org-server dos2unix \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-
-# Install global node packages.
-RUN npm install -g pm2
-
-WORKDIR /opt/web-console
-
-COPY docker/standalone/docker-entrypoint.sh docker-entrypoint.sh
-
-RUN chmod +x docker-entrypoint.sh \
- && dos2unix docker-entrypoint.sh
-
-# Copy nginx config.
-COPY docker/standalone/nginx/* /etc/nginx/
-
-# Install node modules for frontend and backend modules.
-COPY backend/package*.json backend/
-RUN (cd backend && npm install --no-optional --production)
-
-# Copy source.
-COPY backend backend
-
-COPY web-agent/target/ignite-web-agent-*.zip backend/agent_dists
-
-COPY --from=frontend-build /opt/web-console/frontend/build static
-
-VOLUME ["/etc/nginx"]
-VOLUME ["/data/db"]
-VOLUME ["/opt/web-console/serve/agent_dists"]
-
-EXPOSE 80
-ENTRYPOINT ["/opt/web-console/docker-entrypoint.sh"]
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/modules/web-console/docker/standalone/docker-entrypoint.sh
----------------------------------------------------------------------
diff --git a/modules/web-console/docker/standalone/docker-entrypoint.sh b/modules/web-console/docker/standalone/docker-entrypoint.sh
deleted file mode 100644
index 6757de6..0000000
--- a/modules/web-console/docker/standalone/docker-entrypoint.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-#
-
-/usr/bin/mongod --fork --config=/etc/mongod.conf
-
-service nginx start
-
-cd backend && pm2 start ./index.js --no-daemon
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/modules/web-console/docker/standalone/nginx/nginx.conf
----------------------------------------------------------------------
diff --git a/modules/web-console/docker/standalone/nginx/nginx.conf b/modules/web-console/docker/standalone/nginx/nginx.conf
deleted file mode 100644
index dbc79d7..0000000
--- a/modules/web-console/docker/standalone/nginx/nginx.conf
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-#
-
-user www-data;
-worker_processes 1;
-
-error_log /var/log/nginx/error.log warn;
-pid /var/run/nginx.pid;
-
-events {
- worker_connections 128;
-}
-
-http {
- server_tokens off;
- sendfile on;
- tcp_nopush on;
-
- keepalive_timeout 60;
- tcp_nodelay on;
-
- client_max_body_size 100m;
-
- #access log
- log_format main '$http_host $remote_addr - $remote_user [$time_local] '
- '"$request" $status $bytes_sent '
- '"$http_referer" "$http_user_agent" '
- '"$gzip_ratio"';
-
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
- gzip on;
- gzip_disable "msie6";
- gzip_types text/plain text/css text/xml text/javascript application/json application/x-javascript application/xml application/xml+rss application/javascript;
- gzip_vary on;
- gzip_comp_level 5;
-
- access_log /var/log/nginx/access.log main;
- #conf.d
- include web-console.conf ;
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/modules/web-console/docker/standalone/nginx/web-console.conf
----------------------------------------------------------------------
diff --git a/modules/web-console/docker/standalone/nginx/web-console.conf b/modules/web-console/docker/standalone/nginx/web-console.conf
deleted file mode 100644
index caf171e..0000000
--- a/modules/web-console/docker/standalone/nginx/web-console.conf
+++ /dev/null
@@ -1,62 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-#
-
-upstream backend-api {
- server localhost:3000;
-}
-
-server {
- listen 80;
- server_name _;
-
- set $ignite_console_dir /opt/web-console/static;
-
- root $ignite_console_dir;
-
- error_page 500 502 503 504 /50x.html;
-
- location / {
- try_files $uri /index.html = 404;
- }
-
- location /api/v1 {
- proxy_set_header Host $http_host;
- proxy_pass http://backend-api;
- }
-
- location /socket.io {
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "upgrade";
- proxy_http_version 1.1;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header Host $host;
- proxy_pass http://backend-api;
- }
-
- location /agents {
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "upgrade";
- proxy_http_version 1.1;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header Host $host;
- proxy_pass http://backend-api;
- }
-
- location = /50x.html {
- root $ignite_console_dir/error_page;
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a1b7239d/modules/web-console/pom.xml
----------------------------------------------------------------------
diff --git a/modules/web-console/pom.xml b/modules/web-console/pom.xml
index 79293ff6..273e5fe 100644
--- a/modules/web-console/pom.xml
+++ b/modules/web-console/pom.xml
@@ -337,27 +337,6 @@
</execution>
<execution>
- <id>docker-build-standalone</id>
- <phase>package</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <executable>docker</executable>
- <arguments>
- <argument>build</argument>
- <argument>-f</argument>
- <argument>docker/standalone/Dockerfile</argument>
- <argument>-t</argument>
- <argument>
- ${docker.registry.host}/${docker.repository}/${docker.standalone.image}:${project.version}
- </argument>
- <argument>${project.basedir}</argument>
- </arguments>
- </configuration>
- </execution>
-
- <execution>
<id>docker-push-backend</id>
<phase>deploy</phase>
<goals>
@@ -390,23 +369,6 @@
</arguments>
</configuration>
</execution>
-
- <execution>
- <id>docker-push-standalone</id>
- <phase>deploy</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <executable>docker</executable>
- <arguments>
- <argument>push</argument>
- <argument>
- ${docker.registry.host}/${docker.repository}/${docker.standalone.image}:${project.version}
- </argument>
- </arguments>
- </configuration>
- </execution>
</executions>
</plugin>
</plugins>